diff --git a/.eslintrc b/.eslintrc
index 6260aa925..bfa6be8df 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -15,14 +15,24 @@
"import/namespace": 0,
"import/no-unresolved": 0,
"import/no-named-as-default": 0,
+ "import/no-cycle":1,
+ "import/no-import-module-exports": 1,
"import/no-named-as-default-member": 0,
+ "import/no-useless-path-segments": 1,
"comma-dangle": 0, // not sure why airbnb turned this on. gross!
+ "default-param-last": 0,
+ "no-else-return" :0,
"indent": 0,
"no-console": 0,
"no-alert": 0,
+ "no-import-assign": 2,
+ "no-promise-executor-return": 1,
+ "no-restricted-exports": 1,
"no-underscore-dangle": 0,
"no-useless-catch": 2,
+ "prefer-object-spread": 0,
"max-len": [1, 120, 2, {"ignoreComments": true, "ignoreTemplateLiterals": true}],
+ "max-classes-per-file": 0,
"quote-props": [1, "as-needed"],
"no-unused-vars": [1, {"vars": "local", "args": "none"}],
"consistent-return": ["error", { "treatUndefinedAsUnspecified": true }],
@@ -36,7 +46,19 @@
{ "ignorePureComponents": true
}],
"class-methods-use-this": 0,
- "react/jsx-no-bind": [2, {"allowBind": true, "allowArrowFunctions": true}],
+ "react/button-has-type": 0,
+ "react/destructuring-assignment":0,
+ "react/function-component-definition": 0,
+ "react/jsx-curly-newline":0,
+ "react/jsx-fragments":0,
+ "react/jsx-no-useless-fragment":1,
+ "react/jsx-one-expression-per-line": 0,
+ "react/jsx-props-no-spreading": 0,
+ "react/jsx-wrap-multilines": 0,
+ "react/jsx-no-bind": [2, {"allowBind": true, "allowArrowFunctions": true, "allowFunctions": true}],
+ "react/no-deprecated": 1,
+ "react/no-unused-class-component-methods": 1,
+ "react/sort-comp": 0,
"no-return-assign": [2, "except-parens"],
"jsx-a11y/anchor-is-valid": [
"error",
@@ -49,6 +71,8 @@
]
}
],
+ "jsx-a11y/control-has-associated-label": 1,
+ "jsx-a11y/label-has-associated-control": 1,
"jsx-a11y/label-has-for": [
2,
{
diff --git a/client/common/useKeyDownHandlers.js b/client/common/useKeyDownHandlers.js
index dbe2ee06b..93438f230 100644
--- a/client/common/useKeyDownHandlers.js
+++ b/client/common/useKeyDownHandlers.js
@@ -19,6 +19,8 @@ export default function useKeyDownHandlers(keyHandlers) {
*/
const handlers = useRef(keyHandlers);
+ console.log('handlers: ', handlers);
+
useEffect(() => {
handlers.current = mapKeys(keyHandlers, (value, key) => key?.toLowerCase());
}, [keyHandlers]);
@@ -66,3 +68,7 @@ export const DocumentKeyDown = ({ handlers }) => {
DocumentKeyDown.propTypes = {
handlers: PropTypes.objectOf(PropTypes.func)
};
+
+DocumentKeyDown.defaultProps = {
+ handlers: {} // Provide a default empty object for handlers
+};
diff --git a/client/modules/IDE/components/FileNode.jsx b/client/modules/IDE/components/FileNode.jsx
index de19d664f..b91328068 100644
--- a/client/modules/IDE/components/FileNode.jsx
+++ b/client/modules/IDE/components/FileNode.jsx
@@ -460,9 +460,7 @@ function mapStateToProps(state, ownProps) {
});
}
-function mapDispatchToProps(dispatch) {
- return bindActionCreators(Object.assign(FileActions, IDEActions), dispatch);
-}
+const mapDispatchToProps = { ...FileActions, ...IDEActions };
const TranslatedFileNode = withTranslation()(FileNode);
@@ -471,4 +469,6 @@ const ConnectedFileNode = connect(
mapDispatchToProps
)(TranslatedFileNode);
-export { TranslatedFileNode as FileNode, ConnectedFileNode as default };
+export { TranslatedFileNode as FileNode };
+
+export default ConnectedFileNode;
diff --git a/client/modules/IDE/components/SketchList.jsx b/client/modules/IDE/components/SketchList.jsx
index 6092cd686..f773c8a88 100644
--- a/client/modules/IDE/components/SketchList.jsx
+++ b/client/modules/IDE/components/SketchList.jsx
@@ -146,11 +146,8 @@ class SketchListRowBase extends React.Component {
{this.props.t('SketchList.DropdownAddToCollection')}
- {/*
-
- */}
+
+
@@ -185,18 +182,16 @@ class SketchListRowBase extends React.Component {
);
return (
-
-
- {name}
- {formatDateCell(sketch.createdAt, mobile)}
- {formatDateCell(sketch.updatedAt, mobile)}
- {this.renderDropdown()}
-