Skip to content

chore(deps): update dependency @eslint-react/eslint-plugin to v2#16

Open
renovate[bot] wants to merge 1 commit intomainfrom
renovate/eslint-react-eslint-plugin-2.x
Open

chore(deps): update dependency @eslint-react/eslint-plugin to v2#16
renovate[bot] wants to merge 1 commit intomainfrom
renovate/eslint-react-eslint-plugin-2.x

Conversation

@renovate
Copy link

@renovate renovate bot commented Sep 26, 2025

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@eslint-react/eslint-plugin (source) ^1.41.0^2.13.0 age adoption passing confidence

Release Notes

Rel1cx/eslint-react (@​eslint-react/eslint-plugin)

v2.13.0

Compare Source

✨ New
🐞 Fixes
📝 Changes you should be aware of
  1. The naming-convention/filename rule has been deprecated and will be removed in the next major version.
  2. The naming-convention/filename-extension rule has been deprecated and will be removed in the next major version.

Modern React frameworks each come with their own naming conventions that can differ or even conflict. A single predefined, framework-agnostic filename or filename extension rule no longer matches real-world usage. Please follow the official naming conventions of the specific React framework you are using.

For example, here are some references for popular frameworks:

Full Changelog: Rel1cx/eslint-react@v2.12.4...v2.13.0

v2.12.4

Compare Source

🐞 Fixes
🪄 Improvements

Full Changelog: Rel1cx/eslint-react@v2.12.2...v2.12.4

v2.12.2

Compare Source

🐞 Fixes
  • Reduce the sensitivity of component detection to prevent false positives in certain rules, closes #​1488 by @​Rel1cx in #​1489

Full Changelog: Rel1cx/eslint-react@v2.12.1...v2.12.2

v2.12.1

Compare Source

🐞 Fixes
  • Check all union constituents and allow all types under React namespace in no-implicit-key by @​Rel1cx in #​1487

Full Changelog: Rel1cx/eslint-react@v2.12.0...v2.12.1

v2.12.0

Compare Source

🪄 Improvements
📝 Changes you should be aware of

ESLint v10 is now supported and used throughout the repository. The minimum required ESLint version remains v8.57.0, but the project now supports and is tested against ESLint v10.

Full Changelog: Rel1cx/eslint-react@v2.11.2...v2.12.0

v2.11.2

Compare Source

🐞 Fixes
  • Implement a more robust check to handle cases that getFullyQualifiedName cannot handle in no-implicit-key, closes #​1476 by @​Rel1cx in #​1480
🪄 Improvements
  • Bump esbuild, node types, jsdoc plugin

Full Changelog: Rel1cx/eslint-react@v2.11.1...v2.11.2

v2.11.1

Compare Source

🐞 Fixes

Full Changelog: Rel1cx/eslint-react@v2.11.0...v2.11.1

v2.11.0

Compare Source

✨ New

Full Changelog: Rel1cx/eslint-react@v2.10.1...v2.11.0

v2.10.1

Compare Source

🐞 Fixes

Full Changelog: Rel1cx/eslint-react@v2.10.0...v2.10.1

v2.10.0

Compare Source

📝 Changes you should be aware of
  1. The no-implicit-key rule has been updated to use type checking and moved from recommended to type-checked presets.
  2. The no-unnecessary-use-ref rule has been moved to removed rules, because the rule is hard to get right.

Full Changelog: Rel1cx/eslint-react@v2.9.4...v2.10.0

v2.9.4

Compare Source

🐞 Fixes

Full Changelog: Rel1cx/eslint-react@v2.9.3...v2.9.4

v2.9.3

Compare Source

📝 Changes you should be aware of

The following rules have been deprecated and will be removed in the next major version:

  • no-default-props
  • no-prop-types
  • no-string-refs

For legacy codebases, use no-restricted-syntax as an alternative:

{
    files: ['**/*.jsx', '**/*.tsx'],
    rules: {
        "no-restricted-syntax": [
            "error",
            {
                "selector": "AssignmentExpression[operator='='][left.property.name='defaultProps']",
                "message": "[Deprecated] Use ES6 default parameters instead."
            },
            {
                "selector": "AssignmentExpression[operator='='][left.property.name='propTypes']",
                "message": "[Deprecated] Use TypeScript or another type-checking solution instead."
            },
            {
                "selector": "JSXAttribute[name.name='ref'][value.type='Literal']",
                "message": "[Deprecated] Use callback refs instead."
            }
        ]
    }
}

Full Changelog: Rel1cx/eslint-react@v2.9.2...v2.9.3

v2.9.2

🐞 Fixes
🪄 Improvements

Full Changelog: Rel1cx/eslint-react@v2.9.0...v2.9.2

v2.9.0

Compare Source

✨ New
🪄 Improvements
  • Move grouped docs from the global overview to per-plugin READMEs by @​Rel1cx in #​1449
📝 Changes you should be aware of

The no-non-async-server-functions rule has been migrated to rsc/function-definition. Please update your configuration accordingly if you are using it.

Full Changelog: Rel1cx/eslint-react@v2.8.4...v2.9.0

v2.8.4

Compare Source

🐞 Fixes

v2.8.3

Compare Source

✨ New

Full Changelog: Rel1cx/eslint-react@v2.8.1...v2.8.3

v2.8.1

Compare Source

✨ New
  • Function component detection now supports identifying components that don't return a ReactNode but have a 'use memo' or 'use no memo' directive by @​Rel1cx in #​1440
    The function in below example will be detected as a function component in relevant rules:
    function App() {
      "use memo";
    }
    
    function App() {
      "use no memo";
    }
🐞 Fixes

Full Changelog: Rel1cx/eslint-react@v2.8.0...v2.8.1

v2.8.0

Compare Source

✨ New
  • Function component detection now supports identifying components that don't return a ReactNode but call React Hooks by @​Rel1cx in #​1438
    The function in below example will be detected as a function component in relevant rules:
    function App() {
      useEffect(() => {}, []);
    }
🐞 Fixes

Full Changelog: Rel1cx/eslint-react@v2.7.4...v2.8.0

v2.7.4

Compare Source

✨ New
🐞 Fixes
🪄 Improvements

Full Changelog: Rel1cx/eslint-react@v2.7.2...v2.7.3

v2.7.2

Compare Source

🪄 Improvements
  • Reimplement the prefer-destructuring-assignment rule for better performance by @​Rel1cx in #​1423

Full Changelog: Rel1cx/eslint-react@v2.7.1...v2.7.2

v2.7.1

Compare Source

🐞 Fixes
  • Fix misdetected functions inside array expressions as function components; closes #​1416 by @​Rel1cx in #​1418
  • Remove unnecessary no-unnecessary-use-ref rule from strict configurations and update documentation by @​Rel1cx in #​1419
📝 Changes you should be aware of

The no-unnecessary-use-ref rule has been removed from the strict presets, as it was causing false positives in certain scenarios. You can still enable it manually if needed, but please be aware of its current limitations.

Full Changelog: Rel1cx/eslint-react@v2.7.0...v2.7.1

v2.7.0

Compare Source

✨ New
🐞 Fixes

Full Changelog: Rel1cx/eslint-react@v2.6.4...v2.7.0

v2.6.4

Compare Source

✨ New
  • feat: add a disable-experimental preset to quickly opt out of experimental rules by @​Rel1cx in #​1403

Full Changelog: Rel1cx/eslint-react@v2.6.2...v2.6.4

v2.6.2

🐞 Fixes

v2.6.0

✨ New
📝 Changes you should be aware of

The new no-unnecessary-use-ref rule is included in the strict presets.

This rule reports unnecessary uses of useRef when the ref is only used within a single effect which the value can be co-located inside the effect itself. Thanks to @​SukkaW for purposing it!

Full Changelog: Rel1cx/eslint-react@v2.5.7...v2.6.0

v2.5.7

Compare Source

🪄 Improvements
🐞 Fixes
📝 Changes you should be aware of

The no-implicit-key rule has been re-added to the recommended presets.

Full Changelog: Rel1cx/eslint-react@v2.5.5...v2.5.7

v2.5.5

🐞 Fixes
📝 Changes you should be aware of

The following rules have been removed from the strict and recommended presets:

  • no-unnecessary-key
  • no-duplicate-key
  • no-implicit-key

Full Changelog: Rel1cx/eslint-react@v2.5.3...v2.5.5

v2.5.3

Compare Source

🐞 Fixes
  • Enhance context and ref naming rules with additional cases covered by @​Rel1cx in #​1378
  • Update naming-convention/context-name rule to include React version checks; closes #​1382 by @​Rel1cx in #​1384
  • Update naming-convention/ref-name to allow "ref" as a ref name by @​ocavue in #​1380
  • Fix jsx-key-before-spread: should only be enabled in JSX automatic runtime; update related docs and tests; closes #​1381 by @​Rel1cx in #​1383

v2.5.1

Compare Source

🐞 Fixes

Full Changelog: Rel1cx/eslint-react@v2.5.0...v2.5.1

v2.5.0

Compare Source

✨ New
🪄 Improvements

v2.4.0

Compare Source

✨ New
  • Add enforceAssignment and enforceSetterName options to naming-convention/use-state by @​Rel1cx in #​1346
🐞 Fixes
🪄 Improvements
  • Update typescript-eslint to 8.50.1 across all packages

Full Changelog: Rel1cx/eslint-react@v2.3.13...v2.4.0

v2.3.13

Compare Source

🐞 Fixes
  • Clean up the code structure of the AST utils and fix an issue where isNodeEqual did not handle as expressions correctly, closes #​1340 by @​Rel1cx in #​1341
🪄 Improvements
  • Update next and react to latest versions across all packages

Full Changelog: Rel1cx/eslint-react@v2.3.12...v2.3.13

v2.3.12

Compare Source

✨ New
🐞 Fixes
  • Fix web-api/no-leaked-event-listener false positive when using React Native BackHandler, closes #​1323 by @​Rel1cx in #​1336

Full Changelog: Rel1cx/eslint-react@v2.3.11...v2.3.12

v2.3.11

🐞 Fixes

Full Changelog: Rel1cx/eslint-react@v2.3.9...v2.3.11

v2.3.9

Compare Source

✨ New
  • feat: Disallow a function wrapped in useCallback or a variable wrapped in useMemo yet only used in useEffect and only in one useEffect, closes #​1278 by @​possum-enjoyer in #​1321
🐞 Fixes

v2.3.7

Compare Source

🐞 Fixes

Full Changelog: Rel1cx/eslint-react@v2.3.5...v2.3.7

v2.3.5

Compare Source

🐞 Fixes

Full Changelog: Rel1cx/eslint-react@v2.3.4...v2.3.5

v2.3.4

Compare Source

✨ New
🐞 Fixes

Full Changelog: Rel1cx/eslint-react@v2.3.1...v2.3.4

v2.3.1

Compare Source

🐞 Fixes

Full Changelog: Rel1cx/eslint-react@v2.3.0...v2.3.1

v2.3.0

Compare Source

✨ New
🪄 Improvements

Full Changelog: Rel1cx/eslint-react@v2.2.4...v2.3.0

v2.2.4

Compare Source

🐞 Fixes
🪄 Improvements

v2.2.3

Compare Source

🐞 Fixes
🪄 Improvements

v2.2.2

Compare Source

🐞 Fixes
  • Remove remaining code in the unified plugin used for legacy config compatibility by @​Rel1cx in #​1277

Full Changelog: Rel1cx/eslint-react@v2.2.1...v2.2.2

v2.2.1

🪄 Improvements
  • Unified plugin no longer includes the eslint-plugin-react-debug plugin to reduce its deps by @​Rel1cx in #​1276
  • Merge @eslint-react/kit package into @eslint-react/shared package to consolidate shared utilities and reduce package fragmentation by @​Rel1cx in #​1275

Full Changelog: Rel1cx/eslint-react@v2.1.1...v2.2.1

v2.1.1

✨ New
  • Add strict, strict-typescript, and strict-type-checked presets by @​Rel1cx
  • Add no-deprecated preset to enable all rules that report deprecated React APIs by @​Rel1cx
🐞 Fixes
🪄 Improvements
  • Move some rules from recommended presets to strict presets by @​Rel1cx, closes #​1262
    • react-x/no-unstable-context-value
    • react-x/no-unstable-default-props
    • react-x/no-unused-class-component-members
    • react-x/no-unused-state
    • react-dom/no-missing-button-type
    • react-dom/no-missing-iframe-sandbox
    • react-dom/no-unsafe-iframe-sandbox
    • react-dom/no-unsafe-target-blank
  • Change typescript peer dependency version range from ^5.9.2 to ^5 by @​Rel1cx

v2.0.6

Compare Source

🐞 Fixes

Full Changelog: Rel1cx/eslint-react@v2.0.5...v2.0.6

v2.0.5

Compare Source

🪄 Improvements
  • Move error marker from dangerouslySetInnerHTML to children in dom/no-dangerously-set-innerhtml-with-children rule by @​Rel1cx in #​1256
  • Update default React version in settings from 19.1.0 to 19.2.0 by @​Rel1cx in #​1259

Full Changelog: Rel1cx/eslint-react@v2.0.4...v2.0.5

v2.0.4

Compare Source

✨ New
  • Enables naming-convention/use-state rule in recommended presets by @​Rel1cx in #​1252
🐞 Fixes

Full Changelog: Rel1cx/eslint-react@v2.0.3...v2.0.4

v2.0.3

Compare Source

🐞 Fixes
  • Fix dom/prefer-namespace-import missing in react-dom plugin by @​Rel1cx in #​1249
  • Fix false positive for dom/no-missing-button-type when specifying non-trivial expression as value of type attribute, closes #​1247 by @​Rel1cx in #​1250

Full Changelog: Rel1cx/eslint-react@v2.0.2...v2.0.3

v2.0.2

Compare Source

🪄 Improvements

v2.0.1

Compare Source

🐞 Fixes

Full Changelog: Rel1cx/eslint-react@v2.0.0...v2.0.1

v2.0.0

Compare Source

💥 Breaking Changes

Target Environment Updates: Now ESM and ESLint Flat Config Only

  • Drop support for CommonJS (CJS) module format, packages are now distributed only as ECMAScript Modules (ESM)
  • Drop support for ESLint legacy config system, packages now support only ESLint Flat Config (eslint.config.js)
  • Drop support for Node.js 18, minimum required version is now Node.js 20
  • Drop support for ESLint 8, minimum required version is now ESLint 9.3.6
  • Drop support for TypeScript 4, minimum required version is now TypeScript 5.9.2

Removed Rules

Rule Replaced by Reason
react-x/avoid-shorthand-boolean react-x/jsx-shorthand-boolean consolidated
react-x/avoid-shorthand-fragment react-x/jsx-shorthand-fragment consolidated
react-x/ensure-forward-ref-using-ref react-x/no-useless-forward-ref renamed
react-x/no-duplicate-props react-x/jsx-no-duplicate-props renamed
react-x/no-comment-textnodes react-x/jsx-no-comment-textnodes renamed
react-x/no-complicated-conditional-rendering discontinued
react-x/no-nested-components react-x/no-nested-component-definitions renamed
react-x/prefer-react-namespace-import react-x/prefer-namespace-import renamed
react-x/prefer-shorthand-boolean react-x/jsx-shorthand-boolean consolidated
react-x/prefer-shorthand-fragment react-x/jsx-shorthand-fragment consolidated
react-x/use-jsx-vars react-x/jsx-uses-vars renamed
react-dom/no-children-in-void-dom-elements react-dom/no-void-elements-with-children renamed
react-hooks-extra/no-direct-set-state-in-use-layout-effect react-hooks-extra/no-direct-set-state-in-use-effect consolidated
react-hooks-extra/no-unnecessary-use-callback react-x/no-unnecessary-use-callback relocated
react-hooks-extra/no-unnecessary-use-memo react-x/no-unnecessary-use-memo relocated
react-hooks-extra/no-unnecessary-use-prefix react-x/no-unnecessary-use-prefix relocated
react-hooks-extra/prefer-use-state-lazy-initialization react-x/prefer-use-state-lazy-initialization relocated

Removed Presets

Preset Replaced by Reason
core x renamed
off-dom disable-dom renamed

Removed Settings

Setting Replaced by Reason
additionalComponents discontinued
additionalHooks discontinued
skipImportCheck discontinued

Rules previously using these settings have been refactored to use improved heuristics and no longer require manual configuration.

✨ New

Added the following new rules:

  • react-x/jsx-shorthand-boolean: Enforces a consistent style for boolean attributes by @​Rel1cx
  • react-x/jsx-shorthand-fragment: Enforces a consistent style for React Fragments by @​Rel1cx
  • react-x/no-forbidden-props: Disallows specific props on components by @​reteps
  • react-x/no-unnecessary-key: Reports unnecessary key props on elements by @​Rel1cx, @​kachkaev
  • react-x/no-unused-props: Reports unused props in components by @​ulrichstark
  • react-dom/no-string-style-prop: Disallows string values for the style prop by @​Rel1cx, @​karlhorky
  • react-dom/prefer-namespace-import: Enforces using a namespace import for react-dom by @​Rel1cx

Added the following new rule to the recommended-type-checked preset:

  • react-x/no-unused-props: Reports unused props in components

The following rules now support Codemod features:

The following rules now support auto-fix:

  • react-x/no-missing-context-display-name by @​k-yle

The following rules now support suggestion fixes:

New configuration preset added:

  • disable-conflict-eslint-plugin-react: Disable rules in eslint-plugin-react that conflict with rules in our plugins by @​reteps
🐞 Fixes
  • fix(react-x/no-unnecessary-use-prefix): fix false positive of React Hooks defined within the callback function of vi.mock(...) in Vitest test files by @​Rel1cx
  • fix(react-web-api/no-leaked-event-listener): fix useEffect setup function check to handle React.useEffect() calls correctly by @​Rel1cx
  • fix(react-naming-convention/filename): fix false positive on well-known filenames like 404.tsx, _app.tsx, [slug].tsx by @​Rel1cx
🪄 Improvements
  • refactor: simplify React APIs detection logic by @​Rel1cx
  • refactor: cleanup utilities and simplify rule implementations by @​Rel1cx
  • docs: add comparison table between eslint-plugin-react and eslint-react rules by @​reteps, @​outslept
  • docs: replace tseslint.config with defineConfig in all examples by @​Rel1cx
  • build: migrate build system from tsup to tsdown for better performance by @​Rel1cx

Full Changelog: Rel1cx/eslint-react@v1.53.1...v2.0.0

v1.53.1

Compare Source

🐞 Fixes

Full Changelog: Rel1cx/eslint-react@v1.53.0...v1.53.1

v1.53.0

Compare Source

✨ New
  • feat: update naming convention rules default excepts to include common patterns by @​Rel1cx in #​1216
🪄 Improvements
  • build: replace `ts

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/eslint-react-eslint-plugin-2.x branch 6 times, most recently from ada0efe to dc09a24 Compare October 3, 2025 00:27
@renovate renovate bot force-pushed the renovate/eslint-react-eslint-plugin-2.x branch 5 times, most recently from aa40816 to 84585e2 Compare October 14, 2025 12:15
@renovate renovate bot force-pushed the renovate/eslint-react-eslint-plugin-2.x branch 3 times, most recently from d36bff7 to ce56a66 Compare October 27, 2025 04:14
@renovate renovate bot force-pushed the renovate/eslint-react-eslint-plugin-2.x branch 2 times, most recently from 201115a to 52ab0a7 Compare November 2, 2025 10:07
@renovate renovate bot force-pushed the renovate/eslint-react-eslint-plugin-2.x branch 2 times, most recently from 2cec4ad to af3e318 Compare November 12, 2025 18:11
@renovate renovate bot force-pushed the renovate/eslint-react-eslint-plugin-2.x branch 2 times, most recently from 98c3a87 to 5f9ecd4 Compare November 26, 2025 12:17
@renovate renovate bot force-pushed the renovate/eslint-react-eslint-plugin-2.x branch 3 times, most recently from 1ad7033 to 84268a6 Compare December 3, 2025 10:09
@renovate renovate bot force-pushed the renovate/eslint-react-eslint-plugin-2.x branch from 84268a6 to 5f5ef1d Compare December 9, 2025 08:11
@renovate renovate bot force-pushed the renovate/eslint-react-eslint-plugin-2.x branch from 5f5ef1d to a98261c Compare December 23, 2025 20:28
@renovate renovate bot force-pushed the renovate/eslint-react-eslint-plugin-2.x branch from a98261c to a6778eb Compare December 31, 2025 06:40
@renovate renovate bot force-pushed the renovate/eslint-react-eslint-plugin-2.x branch 10 times, most recently from be842ec to ea12084 Compare January 16, 2026 14:12
@renovate renovate bot force-pushed the renovate/eslint-react-eslint-plugin-2.x branch from ea12084 to aa97cf0 Compare January 18, 2026 00:56
@renovate renovate bot force-pushed the renovate/eslint-react-eslint-plugin-2.x branch 3 times, most recently from bb94860 to da35a5e Compare January 29, 2026 10:21
@renovate renovate bot force-pushed the renovate/eslint-react-eslint-plugin-2.x branch 11 times, most recently from 5c2742f to adf682f Compare February 8, 2026 02:41
@renovate renovate bot force-pushed the renovate/eslint-react-eslint-plugin-2.x branch 3 times, most recently from 3643901 to dd2fae6 Compare February 15, 2026 11:33
@renovate renovate bot force-pushed the renovate/eslint-react-eslint-plugin-2.x branch from dd2fae6 to b25146f Compare February 19, 2026 15:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants