diff --git a/apps/website/content/docs/migration.mdx b/apps/website/content/docs/migration.mdx index b6ee78557..27398e8b2 100644 --- a/apps/website/content/docs/migration.mdx +++ b/apps/website/content/docs/migration.mdx @@ -45,17 +45,17 @@ The following table compares all rules from `eslint-plugin-react` with their ESL | [`checked-requires-onchange-or-readonly`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/checked-requires-onchange-or-readonly.md) | | ✅ | ❌ | | [`default-props-match-prop-types`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/default-props-match-prop-types.md) | [`no-prop-types`](/docs/rules/no-prop-types) | ✅ | 🚫 | | [`destructuring-assignment`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/destructuring-assignment.md) | [`prefer-destructuring-assignment`](/docs/rules/prefer-destructuring-assignment) | 🔧 | ✅ | -| [`display-name`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/display-name.md) | [`no-missing-component-display-name`](/docs/rules/no-missing-component-display-name) | ✅ | ✅ | -| [`forbid-component-props`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/forbid-component-props.md) | | ✅ | ❌ | +| [`display-name`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/display-name.md) | [`no-missing-component-display-name`](/docs/rules/no-missing-component-display-name) | ✅ | 🟡 | +| [`forbid-component-props`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/forbid-component-props.md) | | ✅ | 🟡 | | [`forbid-dom-props`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/forbid-dom-props.md) | | ✅ | ❌ | -| [`forbid-elements`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/forbid-elements.md) | [`no-prop-types`](/docs/rules/no-prop-types) | ✅ | ❌ | +| [`forbid-elements`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/forbid-elements.md) | | ✅ | ❌ | | [`forbid-foreign-prop-types`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/forbid-foreign-prop-types.md) | | ✅ | 🚫 | | [`forbid-prop-types`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/forbid-prop-types.md) | [`no-prop-types`](/docs/rules/no-prop-types) | ✅ | 🚫 | -| [`forward-ref-uses-ref`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/forward-ref-uses-ref.md) | [`no-useless-forward-ref`](/docs/rules/no-useless-forward-ref) | ✅ | 🟡 | +| [`forward-ref-uses-ref`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/forward-ref-uses-ref.md) | [`no-useless-forward-ref`](/docs/rules/no-useless-forward-ref) | ✅ | ✅ | | [`function-component-definition`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/function-component-definition.md) | | 🔧 | ❌ | | [`hook-use-state`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/hook-use-state.md) | [`naming-convention/use-state`](/docs/rules/naming-convention-use-state) | ✅ | ✅ | | [`iframe-missing-sandbox`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/iframe-missing-sandbox.md) | [`dom/no-missing-iframe-sandbox`](/docs/rules/dom-no-missing-iframe-sandbox) | ✅ | 🔧 | -| [`jsx-boolean-value`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-boolean-value.md) | [`jsx-shorthand-boolean`](/docs/rules/jsx-shorthand-boolean) / [`avoid-shorthand-boolean`](/docs/rules/avoid-shorthand-boolean) | 🔧 | ✅ | +| [`jsx-boolean-value`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-boolean-value.md) | [`jsx-shorthand-boolean`](/docs/rules/jsx-shorthand-boolean) | 🔧 | 🔧 | | [`jsx-child-element-spacing`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-child-element-spacing.md) | [`@stylistic/jsx-child-element-spacing`](https://eslint.style/rules/jsx-child-element-spacing) | ✅ | ➡️ | | [`jsx-closing-bracket-location`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-closing-bracket-location.md) | [`@stylistic/jsx-closing-bracket-location`](https://eslint.style/rules/jsx-closing-bracket-location) | 🔧 | ➡️ | | [`jsx-closing-tag-location`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-closing-tag-location.md) | [`@stylistic/jsx-closing-tag-location`](https://eslint.style/rules/jsx-closing-tag-location) | 🔧 | ➡️ | @@ -65,11 +65,11 @@ The following table compares all rules from `eslint-plugin-react` with their ESL | [`jsx-equals-spacing`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-equals-spacing.md) | [`@stylistic/jsx-equals-spacing`](https://eslint.style/rules/jsx-equals-spacing) | 🔧 | ➡️ | | [`jsx-filename-extension`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-filename-extension.md) | [`naming-convention/filename-extension`](/docs/rules/naming-convention-filename-extension) | ✅ | ✅ | | [`jsx-first-prop-new-line`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-first-prop-new-line.md) | [`@stylistic/jsx-first-prop-new-line`](https://eslint.style/rules/jsx-first-prop-new-line) | 🔧 | ➡️ | -| [`jsx-fragments`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-fragments.md) | [`jsx-shorthand-fragment`](/docs/rules/jsx-shorthand-fragment) / [`avoid-shorthand-fragment`](/docs/rules/avoid-shorthand-fragment) | 🔧 | ✅ | +| [`jsx-fragments`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-fragments.md) | [`jsx-shorthand-fragment`](/docs/rules/jsx-shorthand-fragment) | 🔧 | 🔧 | | [`jsx-handler-names`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-handler-names.md) | | ✅ | ❌ | | [`jsx-indent`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-indent.md) | [`@stylistic/jsx-indent`](https://eslint.style/rules/jsx-indent) | 🔧 | ➡️ | | [`jsx-indent-props`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-indent-props.md) | [`@stylistic/jsx-indent-props`](https://eslint.style/rules/jsx-indent-props) | 🔧 | ➡️ | -| [`jsx-key`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-key.md) | [`no-missing-key`](/docs/rules/no-missing-key) | ✅ | ✅ | +| [`jsx-key`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-key.md) | [`no-missing-key`](/docs/rules/no-missing-key) + [`no-duplicate-key`](/docs/rules/no-duplicate-key) + [`no-implicit-key`](/docs/rules/no-implicit-key) [`jsx-key-before-spread`](/docs/rules/jsx-key-before-spread) + [`no-unnecessary-key`](/docs/rules/no-unnecessary-key) | ✅ | ✅ | | [`jsx-max-depth`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-max-depth.md) | | ✅ | ❌ | | [`jsx-max-props-per-line`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-max-props-per-line.md) | [`@stylistic/jsx-max-props-per-line`](https://eslint.style/rules/jsx-max-props-per-line) | 🔧 | ➡️ | | [`jsx-newline`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-newline.md) | [`@stylistic/jsx-newline`](https://eslint.style/rules/jsx-newline) | 🔧 | ➡️ | @@ -102,7 +102,7 @@ The following table compares all rules from `eslint-plugin-react` with their ESL | [`no-children-prop`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-children-prop.md) | [`no-children-prop`](/docs/rules/no-children-prop) | ✅ | ✅ | | [`no-danger`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-danger.md) | [`dom/no-dangerously-set-innerhtml`](/docs/rules/dom-no-dangerously-set-innerhtml) | ✅ | ✅ | | [`no-danger-with-children`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-danger-with-children.md) | [`dom/no-dangerously-set-innerhtml-with-children`](/docs/rules/dom-no-dangerously-set-innerhtml-with-children) | ✅ | ✅ | -| [`no-deprecated`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-deprecated.md) | [`no-component-will-mount`](/docs/rules/no-component-will-mount) + [`no-component-will-receive-props`](/docs/rules/no-component-will-receive-props) + [`no-component-will-update`](/docs/rules/no-component-will-update) + [`no-create-ref`](/docs/rules/no-create-ref) + [`no-forward-ref`](/docs/rules/no-forward-ref) | ✅ | 🟡 | +| [`no-deprecated`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-deprecated.md) | [`no-component-will-mount`](/docs/rules/no-component-will-mount) + [`no-component-will-receive-props`](/docs/rules/no-component-will-receive-props) + [`no-component-will-update`](/docs/rules/no-component-will-update) + [`no-create-ref`](/docs/rules/no-create-ref) + [`no-forward-ref`](/docs/rules/no-forward-ref) + [`dom/no-render`](/docs/rules/dom-no-render) + [`dom/no-hydrate`](/docs/rules/dom-no-hydrate) + [`dom/no-find-dom-node`](/docs/rules/dom-no-find-dom-node) | ✅ | 🟡 | | [`no-did-mount-set-state`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-did-mount-set-state.md) | [`no-set-state-in-component-did-mount`](/docs/rules/no-set-state-in-component-did-mount) | ✅ | 🚫 | | [`no-did-update-set-state`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-did-update-set-state.md) | [`no-set-state-in-component-did-update`](/docs/rules/no-set-state-in-component-did-update) | ✅ | 🚫 | | [`no-direct-mutation-state`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-direct-mutation-state.md) | [`no-direct-mutation-state`](/docs/rules/no-direct-mutation-state) | ✅ | 🚫 | @@ -119,7 +119,7 @@ The following table compares all rules from `eslint-plugin-react` with their ESL | [`no-this-in-sfc`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-this-in-sfc.md) | | ✅ | ❌ | | [`no-typos`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-typos.md) | | ✅ | ❌ | | [`no-unescaped-entities`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-unescaped-entities.md) | | ✅ | ❌ | -| [`no-unknown-property`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-unknown-property.md) | [`dom/no-unknown-property`](/docs/rules/dom-no-unknown-property) | 🔧 | ✅ | +| [`no-unknown-property`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-unknown-property.md) | [`dom/no-unknown-property`](/docs/rules/dom-no-unknown-property) | 🔧 | 🔧 | | [`no-unsafe`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-unsafe.md) | [`no-unsafe-component-will-mount`](/docs/rules/no-unsafe-component-will-mount) + [`no-unsafe-component-will-receive-props`](/docs/rules/no-unsafe-component-will-receive-props) + [`no-unsafe-component-will-update`](/docs/rules/no-unsafe-component-will-update) | ✅ | 🟡 | | [`no-unstable-nested-components`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-unstable-nested-components.md) | [`no-nested-component-definitions`](/docs/rules/no-nested-component-definitions) | ✅ | ✅ | | [`no-unused-class-component-methods`](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-unused-class-component-methods.md) | [`no-unused-class-component-members`](/docs/rules/no-unused-class-component-members) | ✅ | 🚫 |