diff --git a/configurations/react.js b/configurations/react.js index 5f9567f..b1bf91f 100644 --- a/configurations/react.js +++ b/configurations/react.js @@ -18,12 +18,10 @@ module.exports.recommended = { 'react-hooks': require('eslint-plugin-react-hooks'), }, rules: { - // TODO broke after upgrading to ESLint v9 - // 'canonical/sort-react-dependencies': 2, + 'canonical/sort-react-dependencies': 2, 'react/boolean-prop-naming': 0, - // 'react/button-has-type': 2, - // TODO broke after upgrading to ESLint v9 - // 'react/default-props-match-prop-types': 2, + 'react/button-has-type': 2, + 'react/default-props-match-prop-types': 2, 'react/destructuring-assignment': 0, 'react/display-name': 0, 'react/forbid-component-props': 2, @@ -31,16 +29,15 @@ module.exports.recommended = { 'react/forbid-elements': 0, 'react/forbid-foreign-prop-types': 0, 'react/forbid-prop-types': 0, - // TODO broke after upgrading to ESLint v9 - // 'react/function-component-definition': [ - // 2, - // { - // namedComponents: 'arrow-function', - // unnamedComponents: 'arrow-function', - // }, - // ], - // 'react/hook-use-state': 2, - // 'react/iframe-missing-sandbox': 2, + 'react/function-component-definition': [ + 2, + { + namedComponents: 'arrow-function', + unnamedComponents: 'arrow-function', + }, + ], + 'react/hook-use-state': 2, + 'react/iframe-missing-sandbox': 2, 'react/jsx-boolean-value': [2, 'never'], 'react/jsx-child-element-spacing': 0, 'react/jsx-closing-bracket-location': [2, 'line-aligned'], @@ -63,7 +60,7 @@ module.exports.recommended = { 'react/jsx-equals-spacing': [2, 'never'], 'react/jsx-filename-extension': 0, 'react/jsx-first-prop-new-line': [2, 'multiline-multiprop'], - // 'react/jsx-fragments': [2, 'syntax'], + 'react/jsx-fragments': [2, 'syntax'], 'react/jsx-handler-names': [ 2, { @@ -96,23 +93,21 @@ module.exports.recommended = { prevent: true, }, ], - // TODO broke after upgrading to ESLint v9 - // 'react/jsx-no-bind': [ - // 2, - // { - // allowArrowFunctions: true, - // allowBind: false, - // ignoreRefs: true, - // }, - // ], + 'react/jsx-no-bind': [ + 2, + { + allowArrowFunctions: true, + allowBind: false, + ignoreRefs: true, + }, + ], 'react/jsx-no-comment-textnodes': 2, - // TODO broke after upgrading to ESLint v9 - // 'react/jsx-no-constructed-context-values': 2, + 'react/jsx-no-constructed-context-values': 2, 'react/jsx-no-duplicate-props': 2, 'react/jsx-no-literals': 0, 'react/jsx-no-script-url': 2, 'react/jsx-no-target-blank': 2, - // 'react/jsx-no-undef': 2, + 'react/jsx-no-undef': 2, 'react/jsx-no-useless-fragment': [ 2, { @@ -155,71 +150,61 @@ module.exports.recommended = { closingSlash: 'never', }, ], - // 'react/jsx-uses-react': 2, - // 'react/jsx-uses-vars': 2, + 'react/jsx-uses-react': 2, + 'react/jsx-uses-vars': 2, 'react/jsx-wrap-multilines': 0, - // TODO broke after upgrading to ESLint v9 - // 'react/no-access-state-in-setstate': 2, + 'react/no-access-state-in-setstate': 2, 'react/no-adjacent-inline-elements': 0, - // TODO broke after upgrading to ESLint v9 - // 'react/no-array-index-key': 2, - // 'react/no-arrow-function-lifecycle': 2, - // 'react/no-children-prop': 2, + 'react/no-array-index-key': 2, + 'react/no-arrow-function-lifecycle': 2, + 'react/no-children-prop': 2, 'react/no-danger': 2, - // 'react/no-danger-with-children': 2, + 'react/no-danger-with-children': 2, 'react/no-deprecated': 2, - // 'react/no-did-mount-set-state': 2, - // 'react/no-did-update-set-state': 2, - // TODO broke after upgrading to ESLint v9 - // 'react/no-direct-mutation-state': 2, + 'react/no-did-mount-set-state': 2, + 'react/no-did-update-set-state': 2, + 'react/no-direct-mutation-state': 2, 'react/no-find-dom-node': 2, 'react/no-invalid-html-attribute': 2, 'react/no-is-mounted': 2, 'react/no-multi-comp': 0, - // 'react/no-namespace': 2, + 'react/no-namespace': 2, 'react/no-redundant-should-component-update': 2, 'react/no-render-return-value': 2, - // TODO broke after upgrading to ESLint v9 - // 'react/no-set-state': 2, - // 'react/no-string-refs': 2, - // 'react/no-this-in-sfc': 2, - // 'react/no-typos': 2, + 'react/no-set-state': 2, + 'react/no-string-refs': 2, + 'react/no-this-in-sfc': 2, + 'react/no-typos': 2, 'react/no-unescaped-entities': 0, 'react/no-unknown-property': 2, 'react/no-unsafe': 2, - // TODO broke after upgrading to ESLint v9 - // 'react/no-unstable-nested-components': 2, + 'react/no-unstable-nested-components': 2, 'react/no-unused-class-component-methods': 2, - // TODO broke after upgrading to ESLint v9 - // 'react/no-unused-prop-types': 2, - // 'react/no-unused-state': 2, - // 'react/no-will-update-set-state': 2, + 'react/no-unused-prop-types': 2, + 'react/no-unused-state': 2, + 'react/no-will-update-set-state': 2, 'react/prefer-es6-class': 2, 'react/prefer-exact-props': 0, - // TODO broke after upgrading to ESLint v9 - // 'react/prefer-read-only-props': 2, - // 'react/prefer-stateless-function': [ - // 2, - // { - // ignorePureComponents: true, - // }, - // ], - // 'react/prop-types': 2, + 'react/prefer-read-only-props': 2, + 'react/prefer-stateless-function': [ + 2, + { + ignorePureComponents: true, + }, + ], + 'react/prop-types': 2, 'react/react-in-jsx-scope': 0, 'react/require-default-props': 0, 'react/require-optimization': 0, - // TODO broke after upgrading to ESLint v9 - // 'react/require-render-return': 2, - // TODO broke after upgrading to ESLint v9 + 'react/require-render-return': 2, 'react/self-closing-comp': 2, 'react/sort-comp': 0, 'react/sort-default-props': 2, 'react/sort-prop-types': 2, 'react/state-in-constructor': [2, 'always'], - // TODO broke after upgrading to ESLint v9 'react/static-property-placement': 0, - // 'react/style-prop-object': 2, - // 'react/void-dom-elements-no-children': 2, + 'react/style-prop-object': 2, + 'react/void-dom-elements-no-children': 2, 'react-hooks/exhaustive-deps': 2, 'react-hooks/rules-of-hooks': 2, },