Changelog
v2.0.0 (2025-09-26)
💥 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 @Rel1cxreact-x/jsx-shorthand-fragment: Enforces a consistent style for React Fragments by @Rel1cxreact-x/no-forbidden-props: Disallows specific props on components by @retepsreact-x/no-unnecessary-key: Reports unnecessarykeyprops on elements by @Rel1cx, @kachkaevreact-x/no-unused-props: Reports unused props in components by @ulrichstarkreact-dom/no-string-style-prop: Disallows string values for thestyleprop by @Rel1cx, @karlhorkyreact-dom/prefer-namespace-import: Enforces using a namespace import forreact-domby @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:
react-x/no-component-did-updateby @Rel1cxreact-x/no-component-will-receive-propsby @Rel1cxreact-x/no-component-will-updateby @Rel1cxreact-x/no-context-providerby @Rel1cxreact-x/no-forward-refby @Rel1cxreact-x/no-string-refsby @Rel1cx
The following rules now support auto-fix:
react-x/no-missing-context-display-nameby @k-yle
The following rules now support suggestion fixes:
react-dom/no-missing-button-typeby @Rel1cxreact-dom/no-missing-iframe-sandboxby @Rel1cxreact-dom/no-unsafe-target-blankby @Rel1cx
New configuration preset added:
disable-conflict-eslint-plugin-react: Disable rules ineslint-plugin-reactthat 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 
useEffectsetup function check to handleReact.useEffect()calls correctly by @Rel1cx - fix(react-naming-convention/filename): fix false positive on well-known filenames like 
404.tsx,_app.tsx,[slug].tsxby @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-reactandeslint-reactrules by @reteps - docs: replace 
tseslint.configwithdefineConfigin all examples by @Rel1cx - build: migrate build system from 
tsuptotsdownfor better performance by @Rel1cx 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.53.1...v2.0.0
v1.53.1 (2025-09-11)
🐞 Fixes
- fix: fix useEffect setup function check in 
web-api/no-leaked-event-listener, closes #1228 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1229 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.53.0...v1.53.1
v1.53.0 (2025-09-04)
✨ New
- feat: update naming convention rules default excepts to include common patterns by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1216
 
🪄 Improvements
- build: replace 
tsupwithtsdownby @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1213 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.52.8...v1.53.0
v1.52.9 (2025-08-31)
🐞 Fixes
- fix: issue introduced in version v1.52.7 where the 
react-hooks-extrarules were not exported, closes #1207 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1208 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.52.8...v1.52.9
v1.52.8 (2025-08-29)
🐞 Fixes
- fix: restore ESLint legacy config compatibility, closes #1203 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1204
 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.52.7...v1.52.8
v1.52.7 (2025-08-29)
🐞 Fixes
- fix: add ESLint compatibility types and update plugins exports, closes #1200 by @Rel1cx in https://github.com/Rel1cx/eslint-react/commit/f3083c78f680d486f8894532b7714d1bdf8f9cd7
 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.52.6...v1.52.7
v1.52.6 (2025-08-18)
🐞 Fixes
- fix: correct logic in 
naming-convention/component-namevalidation to continue on valid names, closes #1176 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1177 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.52.5...v1.52.6
v1.52.5 (2025-08-15)
🐞 Fixes
- fix: refactor 
is-from-reactutility inreact-debug/is-from-reactrule and improvereact-x/no-forward-refrule autofix handling, closes #1172 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1173 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.52.4...v1.52.5
v1.52.4 (2025-08-13)
🐞 Fixes
- fix: improve logic for detecting significant children in JSX elements, closes #1163 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1165
 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.52.3...v1.52.4
v1.52.3 (2025-07-13)
🐞 Fixes
- fix: remove 
bunengine requirement frompackage.jsonfiles, closes #1157 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1158 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.52.2...v1.52.3
v1.52.2 (2025-06-12)
🐞 Fixes
- fix: 
react-x/no-default-propsshould report only function components, closes #1131 by @Rel1cx in https://github.com/Rel1cx/eslint-react/commit/681b10a7873e4764336a9e7a49dfd33c8bf1fbef 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.52.1...v1.52.2
v1.52.1 (2025-06-11)
✨ New
- feat: add autofix for 
no-missing-context-display-nameby @k-yle in https://github.com/Rel1cx/eslint-react/pull/1128 
New Contributors
- @k-yle made their first contribution in https://github.com/Rel1cx/eslint-react/pull/1128
 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.51.3...v1.52.1
v1.51.3 (2025-06-09)
🐞 Fixes
- fix: update messages for 
react-x/jsx-no-iifeandreact-x/jsx-uses-varsrules by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1127 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.51.2...v1.51.3
v1.51.2 (2025-06-08)
🐞 Fixes
- fix: skip function components without name in 
react-x/prefer-read-only-propsby @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1125 
🪄 Improvements
- docs: update references from 'Language Config' to 'Project Config' across documentation by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1126
 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.51.1...v1.51.2
v1.51.1 (2025-06-06)
🐞 Fixes
- fix: fixed jsx detection method not respect SkipEmptyArray hint, closes #1122 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1124
 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.51.0...v1.51.1
v1.51.0 (2025-06-03)
✨ New
- feat(react-x): add 
jsx-no-iiferule, closes #1112 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1113 
🐞 Fixes
- fix: fixed 
no-direct-set-state-in-use-effectdeferred setState calls detection, closes #1117 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1119 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.50.0...v1.51.0
v1.50.0 (2025-05-25)
🐞 Fixes
- fix: 
polymorphicPropNamenot work withno-void-elements-with-childrenby @huynhducduy in https://github.com/Rel1cx/eslint-react/pull/1108 - fix: use stable version 
zod, closes #1110 
New Contributors
- @huynhducduy made their first contribution in https://github.com/Rel1cx/eslint-react/pull/1108
 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.49.0...v1.50.0
v1.49.0 (2025-05-05)
✨ New
- feat: add 
jsx-key-before-spread, closes #1093, closes #1087 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1105 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.48.5...v1.49.0
v1.48.5 (2025-04-25)
🐞 Fixes
- fix: fixed named export 'JsxEmit' not found, closes #1095 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1096
 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.48.4...v1.48.5
v1.48.4 (2025-04-19)
🐞 Fixes
- fix: update fallback react version in settings to "19.1.0"
 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.48.3...v1.48.4
v1.48.3 (2025-04-17)
🪄 Improvements
- refactor: improve settings handling by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1080
 - docs: add more examples to 
web-api/no-leaked-event-listenerdocs by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1082 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.48.2...v1.48.3
v1.48.2 (2025-04-16)
🐞 Fixes
- fix: could not find 
hooks-extra/no-direct-set-state-in-use-effectin pluginreact-hooks-extra, closes #1077 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1078 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.48.1...v1.48.2
v1.48.1 (2025-04-16)
🐞 Fixes
- fix: rewrite react api detection to better align with 
eslint-plugin-react-hookby @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1074 - fix: use preferred loc in error maker in 
hooks-extra/no-unnecessary-use-prefixby @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1073 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.47.4...v1.48.0
v1.47.4 (2025-04-15)
🐞 Fixes
- fix: update 
hooks-extra/no-unnecessary-use-prefixto skip well-known hooks likeuseMDXComponentsby @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1072 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.47.3...v1.47.4
v1.47.3 (2025-04-15)
🐞 Fixes
- fix: fixed potential false negatives in 
no-leaked-conditional-renderingwhen logical expressions are wrapped by type expressions by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1068 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.47.2...v1.47.3
v1.47.2 (2025-04-14)
🐞 Fixes
- fix: use smaller error marker range to reduce visual noise by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1064
 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.47.1...v1.47.2
v1.47.1 (2025-04-14)
🐞 Fixes
- fix: better debug rules message formatting by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1062
 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.47.0...v1.47.1
v1.47.0 (2025-04-14)
🪄 Improvements
- refactor: remove 
@eslint-react/jsxpackage and move functionality to@eslint-react/coreby @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1060 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.46.0...v1.47.0
v1.46.0 (2025-04-13)
✨ New
- feat: use json for diagnostic output format of debug rules by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1058
 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.45.3...v1.45.4
v1.45.4 (2025-04-13)
🪄 Improvements
- perf: replace 
MapwithWeakMapby @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1057 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.45.3...v1.45.4
v1.45.3 (2025-04-12)
🪄 Improvements
- pref: replace 
picomatch.makeRewithRE.toRegExpfor pattern matching by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1055 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.45.2...v1.45.3
v1.45.2 (2025-04-12)
🪄 Improvements
- docs: add table of contents to the README by @Rel1cx in https://github.com/Rel1cx/eslint-react/commit/b880cb95d2245f7034f47e883d944c9a8b4ecf5f
 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.45.1...v1.45.2
v1.45.1 (2025-04-12)
🐞 Fixes
- fix: fixed 
hooks-extra/no-unnecessary-use-prefixcase sensitivity fails, closes #1053 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1054 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.45.0...v1.45.1
v1.45.0 (2025-04-11)
✨ New
- feat: add 
react-x/no-misused-capture-owner-stackrule, closes #1049 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1047 - feat: add 
react-x/no-nested-lazy-component-declarationsrule, closes #1048 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1052 - feat: add 
react-x/no-nested-lazy-component-declarationsrule to recommended presets by @Rel1cx 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.44.0...v1.45.0
v1.44.0 (2025-04-11)
✨ New
- feat: add JSX fragment factory to error message of 
react-x/avoid-shorthand-fragmentby @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1051 
🪄 Improvements
- perf: replace 
valibotwith@zod/miniby @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1050 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.43.0...v1.44.0
v1.43.0 (2025-04-10)
✨ New
- feat: add codemod feature to 
react-x/no-string-refs, closes #1044 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1045 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.42.1...v1.43.0
v1.42.1 (2025-04-08)
✨ New
- feat: rename 
corepreset toxby @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1042 
📝 Changes you should be aware of
The following presets have been renamed:
coretoxcore-legacytox-legacy
The old preset names will still be available until the next major update to avoid breaking changes.
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.41.0...v1.42.1
v1.41.0 (2025-04-08)
✨ New
- feat: add 
react-debug/jsxrule by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1041 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.40.4...1.41.0
v1.40.4 (2025-04-07)
🐞 Fixes
- fix: refactor JSX runtime annotation handling by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1038
 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.40.3...v1.40.4
v1.40.3 (2025-04-04)
🐞 Fixes
- fix: fixed 
no-useless-fragmentfalse positive when using , closes #1035 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1036 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.40.2...v1.40.3
v1.40.2 (2025-04-03)
🐞 Fixes
- fix(react-x): fixed 
jsx-uses-reactrule forpreservemode by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1031 - fix: use initial release year and consistent username in LICENSE by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1032
 
🪄 Improvements
- refactor(kit): simplify 
LanguagePreferenceSchemaby @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1033 - refactor(website): reorganize CSS and improve theme by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1034
 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.40.1...v1.40.2
v1.40.1 (2025-04-01)
✨ New
- feat(react-x): enhance 
jsx-uses-reactrule to support@jsxand@jsxFragannotation comments by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1029 - feat(kit): add 
LanguagePreferenceby @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1028 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.40.0...v1.40.1
v1.40.0 (2025-04-01)
✨ New
- feat(react-x): add 
react-x/jsx-uses-reactrule by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1027 - feat: enable 
react-x/jsx-uses-reactrule in recommended presets by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1027 - feat: enable 
naming-convention/context-namerule in recommended presets by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1024 - feat(kit): add 
JsxRuntimemodule by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1025 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.38.4...v1.40.0
v1.38.4 (2025-03-29)
🪄 Improvements
- chore: update default React version to 19.1.0 in documentation and settings by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1023
 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.38.3...v1.38.4
v1.38.3 (2025-03-28)
🪄 Improvements
- docs: switch back to the original slogan by @Rel1cx in https://github.com/Rel1cx/eslint-react/commit/e0e4d460c
 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.38.2...v1.38.3
v1.38.2 (2025-03-27)
🐞 Fixes
- fix(eslint-plugin): disable 
prefer-shorthand-*rules inallconfig by @Rel1cx in https://github.com/Rel1cx/eslint-react/commit/a9e6ef9f97f968bb9366af3e5b40138fb4b6b679 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.38.0...v1.38.2
v1.38.0 (2025-03-25)
✨ New
- feat: add 
react-x/jsx-no-undefrule, closes #1016 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1018 - feat: add 
hooks-extra/prefer-use-state-lazy-initializationrule to recommended presets by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1019 - docs: add experimental status to rules overview by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1012
 
🪄 Improvements
- refactor: undeprecate 
react-x/jsx-uses-varsandreact-x/jsx-no-duplicate-propsrules by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1017 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.37.3...v1.38.0
v1.37.3 (2025-03-22)
🐞 Fixes
- fix: the requested module 
ts-api-utilsdoes not provide an export namedunionConstituents, closes #1009 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1010 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.37.2...v1.37.3
v1.37.2 (2025-03-22)
🐞 Fixes
- fix: 
prefer-read-only-propsfalse positive using React types, closes #962 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1008 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.37.1...v1.37.2
v1.37.1 (2025-03-22)
🐞 Fixes
- fix: enhance 
hooks-extra/prefer-use-state-lazy-initializationto correctly detect other hooks called withinuseState(...)by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1006 
🪄 Improvements
- docs: improve rule description and error message by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1003 and https://github.com/Rel1cx/eslint-react/pull/1007
 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.37.0...v1.37.1
v1.37.0 (2025-03-20)
🪄 Improvements
- refactor: remove 
hooks-extra/prefer-use-state-lazy-initializationfrom recommended presets by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1001Based on feedback of this rule, the current implementation produces more false positives than expected, so to ensure the overall quality of the rules in the recommended presets we provide, I'm removing it from the presets for now, and should add it back after we implement a better heuristic for deciding which function calls should be allowed.
 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.36.3...v1.37.0
v1.36.3 (2025-03-20)
🐞 Fixes
- fix: 
hooks-extra/prefer-use-state-lazy-initializationfalse positive onuseState(use(promise))closes #999 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1000 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.36.2...v1.36.3
v1.36.2 (2025-03-20)
No notable changes have been made in this release.
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.36.1...v1.36.2
v1.36.1 (2025-03-19)
🪄 Improvements
- refactor(naming-convention/use-state): enhance error messaging and docs, closes #980 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/997
 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.35.0...v1.36.1
v1.35.0 (2025-03-18)
✨ New
- feat(plugins/dom): add 
no-renderrule to replaceReactDom.render()withcreateRoot(node).render(), closes #972 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/993 - feat(plugins/dom): add 
no-hydraterule to replaceReactDom.hydrate()withhydrateRoot(), closes #973 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/995 
🪄 Improvements
- refactor: rename 
hooks-extra/no-useless-custom-hookstohooks-extra/no-unnecessary-use-prefixby @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/996 
📝 Changes you should be aware of
The following rules have been renamed:
react-hooks-extra/no-useless-custom-hookstoreact-hooks-extra/no-unnecessary-use-prefix@eslint-react/hooks-extra/no-useless-custom-hooksto@eslint-react/hooks-extra/no-unnecessary-use-prefix
The old rule names will still be available until the next major update to avoid breaking changes.
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.34.1...v1.35.0
v1.34.1 (2025-03-15)
🐞 Fixes
- fix: false positive in 
react-x/no-context-provideron symbols namedProviderwhich are imported from third-party libs, closes #991 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/992 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.34.0...v1.34.1
v1.34.0 (2025-03-15)
🪄 Improvements
- refactor: export the create function of each rule by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/989
 - refactor(plugins/x): rename 
no-nested-componentsrule tono-nested-component-definitionsand update related docs by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/990 
📝 Changes you should be aware of
The following rules have been renamed:
react-x/no-nested-componentstoreact-x/no-nested-component-definitions@eslint-react/no-nested-componentsto@eslint-react/no-nested-component-definitions
The old rule names will still be available until the next major update to avoid breaking changes.
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.33.0...v1.34.0
v1.33.0 (2025-03-14)
🐞 Fixes
- fix: update rule severity for 
no-flush-syncandno-void-elements-with-childrenin recommended presets by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/988 
🪄 Improvements
- refactor(plugins/x): rename 
ensure-forward-ref-using-reftono-useless-forward-refby @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/987 
📝 Changes you should be aware of
The following rules have been renamed:
react-x/ensure-forward-ref-using-reftoreact-x/no-useless-forward-ref@eslint-react/ensure-forward-ref-using-refto@eslint-react/no-useless-forward-ref
The old rule names will still be available until the next major update to avoid breaking changes.
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.32.1...v1.33.0
v1.32.1 (2025-03-13)
🐞 Fixes
- fix: fixed 
no-context-providerreplaces<Provider>with<>, closes #984 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/985 
v1.32.0 (2025-03-12)
✨ New
- feat: revert 'feat: add naming-convention/use-state and naming-convention/context-name to recommended presets by @Rel1cx in #956' by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/982
 
🪄 Improvements
- docs: update eslint configs in examples to use extends by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/978
 - docs: update ts configs in examples to use project references by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/979
 
v1.31.0 (2025-03-07)
✨ New
- feat: enhance regex handling in naming convention rules by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/969
 
🪄 Improvements
- docs: improve rules descriptions by @Rel1cx
 
v1.30.2 (2025-03-05)
🐞 Fixes
- fix(plugins/hooks-extra): misidentification of 
setfunction in IIFE inside of hooks as its inside ofuseEffect,useLayoutEffect, closes #967 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/968 
v1.30.1 (2025-03-04)
🐞 Fixes
- fix(utilities/var): fix variable init node retrieval, fixes #964 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/965
 
🪄 Improvements
- refactor(plugins/hooks-extra): improve code reusability by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/963
 
New Contributors
- @mrginglymus made their first contribution in https://github.com/Rel1cx/eslint-react/pull/964
 
v1.30.0 (2025-03-03)
✨ New
- feat: add 
naming-convention/use-stateandnaming-convention/context-nameto recommended presets by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/956 
🐞 Fixes
- fix: correct readonly checks and test cases in 
prefer-read-only-propsby @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/957 - fix: rework 
naming-convention/component-namerule to follow eslint-plugin-react-hooks@5.0 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/959Component names now need to start with an uppercase letter instead of a non-lowercase letter. This means
_Buttonor_componentare no longer valid. - fix: 
naming-convention/use-statefails with multiple words, closes #960 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/961 
v1.29.0 (2025-03-01)
✨ New
- feat(plugins/naming-convention): add 
context-namerule by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/952 
🐞 Fixes
- fix: fixed 
naming-convention/use-stateworks in components only, closes #953 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/954 
🪄 Improvements
- docs: use 
recommended-typescriptfor typescript files by @bluwy in https://github.com/Rel1cx/eslint-react/pull/949 
New Contributors
- @bluwy made their first contribution in https://github.com/Rel1cx/eslint-react/pull/949
 
v1.28.0 (2025-02-26)
✨ New
- feat(plugins/dom): add 
no-flush-syncrule by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/942 - feat: add 
skipImportChecksetting by @Rel1cx 
🪄 Improvements
- refactor: code optimization by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/945
 - refactor: consistent ordering of arguments to context-aware utility functions by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/946
 
v1.27.0 (2025-02-21)
✨ New
- feat: add presets exports to modular plugins by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/940
 - feat: add 
no-missing-context-display-namerule by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/941 
🪄 Improvements
- refactor: improve error messages by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/936 and https://github.com/Rel1cx/eslint-react/pull/937
 - refactor: add 
useEffecttoadditionalHooksby @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/938 - refactor: change severity of 
no-duplicate-keyrule fromerrortowarnby @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/939 
v1.26.2 (2025-02-06)
🐞 Fixes
- fix(plugins/x): enhance 
no-context-providerrule to include context name in error messages by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/935 
v1.26.1 (2025-02-03)
No notable changes have been made in this release.
v1.26.0 (2025-01-31)
✨ New
- feat(plugins/x): add 'no-use-context', closes #930 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/931
 
v1.25.0 (2025-01-27)
✨ New
- feat(no-useless-fragment): auto fix support, closes #899 by @hyoban in https://github.com/Rel1cx/eslint-react/pull/926
 - docs: add setup guide for 
ts-blank-eslint-parserby @Rel1cx - docs: add setup example for 
ts-blank-eslint-parserby @Rel1cx 
🐞 Fixes
- fix(no-forward-ref): loose fix by @hyoban in https://github.com/Rel1cx/eslint-react/pull/925
 
🪄 Improvements
- refactor(website): switch from nextra to fumadocs by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/928
 
v1.24.1 (2025-01-22)
🐞 Fixes
- fix: fixed invalid rules for 
disable-debug,disable-dom, anddisable-web-apisconfigs, closes https://github.com/Rel1cx/eslint-react/issues/923 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/924 
v1.24.0 (2025-01-21)
🪄 Improvements
- perf: overhaul performance optimizations
 
v1.23.2 (2025-01-07)
✨ New
- feat(plugins/x): add auto-fix to 
prefer-shorthand-fragment, closes #898 (#902) 
v1.23.1 (2025-01-03)
🐞 Fixes
- fix(plugins/x): fixed false positives in 
no-unstable-context-valueandno-unstable-default-propsby @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/896 
v1.23.0 (2024-12-31)
🪄 Improvements
- refactor: JSX fragments related rules no longer rely on 
jsxPragmaandjsxPragmaFragsettings to perform their checks by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/893 - refactor: improve applicability of the 
no-useless-fragmentandprefer-shorthand-fragmentrules - refactor: deprecate 
settings["react-x"].jsxPragmaandsettings["react-x"].jsxPragmaFragas they are no longer needed by any rules - refactor: replace 
short-unique-idw/uidby @SukkaW in https://github.com/Rel1cx/eslint-react/pull/894 
🐞 Fixes
- fix(plugins/hooks-extra): fix 
callandnewexpression related false positives inno-unnecessary-use-memoandno-unnecessary-use-callbackby @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/895 
v1.22.2 (2024-12-30)
🪄 Improvements
- perf: re-implement 
no-duplicate-keyrule to improve its performance @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/891 and 33ab3cc - refactor: prevent potential interference from TypeScript's 
as,satisfies, and non-null assertion operator in various rules 
v1.22.1 (2024-12-24)
🪄 Improvements
- docs: add getting started guides for JavaScript, TypeScript, and JavaScript with Babel
 - docs: improve code samples in rules docs
 - docs: improve 
eslint.config.jsexamples in README.md, docs and the examples folder - docs: improve the error message and description of various rules
 - refactor(website): better website layout and navigation experience
 
📝 Changes in examples
The eslint.config.js in the examples now uses tsconfig's includes and excludes as the SSoT glob patterns for ESLint's files and ignores fields.
This approach can fundamentally avoid the errors[1, 2, 3] caused by mismatched config scopes between tsconfig.json and eslint.config.js when using type-checked rules.
v1.22.0 (2024-12-22)
🪄 Improvements
- refactor(plugins/x): rename 
jsx-use-varstouse-jsx-vars - refactor(plugins/x): rename 
jsx-no-duplicate-propstono-duplicate-jsx-props - refactor(plugins/dom): rename 
no-children-in-void-dom-elementstono-void-elements-with-children 
📝 Changes you should be aware of
The following rules have been renamed:
jsx-uses-varstouse-jsx-varsjsx-no-duplicate-propstono-duplicate-jsx-propsdom/no-children-in-void-dom-elementstodom/no-void-elements-with-children
The new rule names are aligned with the same rules in the biomejs/rules-sources/#eslint-plugin-react (if any) to enhance consistency. The old rule names will still be available until the next major update to avoid breaking changes.
v1.21.0 (2024-12-20)
✨ New
- feat(plugins/hooks-extra): add 
no-useless-custom-hooksrule by @Rel1cx 
🪄 Improvements
- refactor(plugins/hooks-extra): deprecate rule 
no-redundant-custom-hookin favor ofno-useless-custom-hooks(the previous rule will still be available until the next major update to avoid breaking changes) 
📝 Changes in Rule implementation
no-useless-custom-hooks now detects Hook calls within comments and the following code no longer triggers a warning:
// ✅ Good: A Hook that will likely use some other Hooks later
function useAuth() {
  // TODO: Replace with this line when authentication is implemented:
  // return useContext(Auth);
  return TEST_USER;
}v1.20.1 (2024-12-18)
🪄 Improvements
- refactor(shared): replace 
local-pkgpackage with node built-in API by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/881 
v1.20.0 (2024-12-16)
✨ New
- feat(plugins/x): add codemod-autofix to 
no-component-will-*by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/879 
🪄 Improvements
- refactor: use default settings when no settings are provided in 
settings["react-x"]by @Rel1cx in https://github.com/Rel1cx/eslint-react/commit/40ca3bd1cd7adc44f40841b5b4635e0200b73a54 - docs: update 
no-context-provider.mdxby @danielrentz in https://github.com/Rel1cx/eslint-react/pull/877 - docs: add 'Min. React' column to rules overview page by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/880
 - docs: add features section to rules overview page by @Rel1cx
 
New Contributors
- @danielrentz made their first contribution in https://github.com/Rel1cx/eslint-react/pull/877
 
v1.19.0 (2024-12-10)
✨ New
- feat(plugins/x): add 
no-context-providerrule by @Rel1cx - feat(plugins/x): add autofix for 
no-forward-refrule by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/874 - feat(plugins/eslint-plugin): add 
no-forward-refandno-context-providerto recommended presets by @Rel1cx 
🪄 Improvements
- refactor(plugins/eslint-plugin): remove 
prefer-read-only-propsfromrecommended-type-checkedpreset by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/872 - refactor(plugins/eslint-plugin): hide 
avoid-shorthand-booleanandavoid-shorthand-fragmentfrom presets and docs by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/876 - Update 
@typescript-eslint's packages to^8.18.0 
v1.18.0 (2024-12-08)
✨ New
- feat(plugins/x): add 
no-forward-refrule by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/870 
🪄 Improvements
- perf(plugins/dom): improve performance of 
no-void-elements-with-childrenby @Rel1cx 
v1.17.3 (2024-12-03)
🐞 Fixes
- fix(plugins/web-api): add 'forEach' support to 'no-leaked-event-listener', closes #842 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/867
 - fix(plugins/web-api): add 'for of' support to 'no-leaked-event-listener', closes #842 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/869
 - fix(plugins/x): 'no-array-index-key' mistaking 'foo.bar.map' for 'Rea… by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/868
 
🪄 Improvements
- Update 
@typescript-eslint's packages to^8.17.0 
v1.17.2 (2024-12-01)
🪄 Improvements
- Update 
eslint's packages to^9.16.0 - Update 
@typescript-eslint's packages to^8.16.0 - Update 
ts-api-utilsto^2.0.0 
v1.17.1 (2024-11-22)
✨ New
- feat(shared): add version detection logic;
 
🐞 Fixes
- fix(plugins/x): 'no-leaked-conditional-rendering' should also warn 'anyStringVar' when react version is lower than 18, closes #853 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/864
 - fix(plugins/dom): add popover api props to 'no-unknown-property', closes #855 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/865
 - fix(plugins/debug): 'is-from-react' use correct settings when calling 'isInitializedFromReact', by @Rel1cx
 
v1.17.0 (2024-11-21)
✨ New
- feat(plugins/naming-convention): add 'ignoreFilesWithoutCode' option to 'filename-extension'
 
🐞 Fixes
- refactor(plugins/x): xhtml entities should be allowed inside of 'no-useless-fragment', closes: #850
 - fix(plugins/eslint-plugin): unexpected top-level property 'name' in legacy presets, closes #863
 - fix(plugins/eslint-plugin): rules list in 'debug' and 'disable-debug' presets
 
v1.16.2 (2024-11-20)
🐞 Fixes
- fix(plugins/x): 'no-leaked-conditional-rendering' report empty string, closes #853 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/857
 
🪄 Improvements
- refactor: update the default behavior of import check, closes #858 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/860
 
v1.16.1 (2024-11-10)
✨ New
- feat(plugins/x): add 
jsx-no-duplicate-propsby @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/851 
🪄 Improvements
- docs: use correct link for 
prefer-react-namespace-importin rule list by @rakleed in https://github.com/Rel1cx/eslint-react/pull/849 
v1.16.0 (2024-11-01)
✨ New
- feat(plugins/react-x): add 
jsx-uses-vars, closes #834 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/845 - feat(plugins/react-dom): add 
no-unknown-property, closes #846 by @Rel1cx - feat: add 
recommended-typescriptandrecommended-typescript-legacypresets by @Rel1cx 
🪄 Improvements
- Update 
@typescript-eslint's packages to^8.12.2 
v1.15.2 (2024-10-29)
🪄 Improvements
- Update 
@typescript-eslint's packages to^8.12.1 
v1.15.1 (2024-10-26)
✨ New
- feat: added code fixer to 
react-x/avoid-shorthand-booleanandreact-x/prefer-shorthand-fragmentby @Rel1cx 
🐞 Fixes
- fix(plugins/react-x): respect semicolon by @hyoban in https://github.com/Rel1cx/eslint-react/pull/841
 - fix(utilities/ast): added missing ts 
asandsatisfiesexpressions handling togetFunctionIdentifierby @Rel1cx , closes https://github.com/Rel1cx/eslint-react/issues/843 
v1.15.0 (2024-10-12)
✨ New
- feat: add support for constructors in 
hooks-extra/prefer-use-state-lazy-initializationby @imjordanxd in https://github.com/Rel1cx/eslint-react/pull/829 - feat: add 
prefer-react-namespace-import, closes #803 by @imjordanxd in https://github.com/Rel1cx/eslint-react/pull/832 - feat: add support for 
allowExpressionsinno-useless-fragmentby @imjordanxd in https://github.com/Rel1cx/eslint-react/pull/836 
🐞 Fixes
- fix: Fix false positives when 'web-api/no-leaked-event-listener' passes a signal to an intermediate variable, closes #838
 
🪄 Improvements
- docs: Update 
hooks-extra-no-direct-set-state-in-use-effect.mdxby @neovov in https://github.com/Rel1cx/eslint-react/pull/831 - docs: use a standard mono-width font for the docs, closes #835 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/837
 - Undeprecate 
hooks-extra-no-direct-set-state-in-use-layout-effectand remove it from recommended presets, closes #839 by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/840 
New Contributors
- @imjordanxd made their first contribution in https://github.com/Rel1cx/eslint-react/pull/829
 - @neovov made their first contribution in https://github.com/Rel1cx/eslint-react/pull/831
 
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.14.3...v1.15.0
v1.14.3 (2024-09-29)
🪄 Improvements
- Update 
@typescript-eslint's packages to^8.7.0 
v1.14.2 (2024-09-20)
🪄 Improvements
- Update 
@typescript-eslint's packages to^8.6.0 
v1.14.1 (2024-09-12)
🐞 Fixes
- Fixed false positives in rule 
web-api/no-leaked-resize-observer 
v1.14.0 (2024-09-10)
🐞 Fixes
- Fixed modular plugins missing default export
 - Fixed component name detection when the component name starts with a underscore
 
🪄 Improvements
- Update 
@typescript-eslint's packages to^8.5.0 
v1.13.1 (2024-09-09)
🐞 Fixes
- Fixed 
hooks-extra/no-unnecessary-use-callbackandhooks-extra/no-unnecessary-use-memofalse positives when there are references from nested scopes 
v1.13.0 (2024-09-04)
✨ New
- Added 
web-api/no-leaked-resize-observerrule to prevent leakedResizeObserver 
🐞 Fixes
hooks-extra/no-redundant-custom-hookshould allow custom Hooks with empty body
🪄 Improvements
- Rename 
debug/react-hookstodebug/hook - Rename 
hooks-extra/ensure-custom-using-hookstohooks-extra/no-redundant-custom-hook - Rename 
hooks-extra/ensure-use-memo-has-non-empty-depstohooks-extra/no-unnecessary-use-memo - Rename 
hooks-extra/ensure-use-callback-has-non-empty-depstohooks-extra/no-unnecessary-use-callback - Upgrade 
@typescript-eslint's packages to^8.4.0 
(The rules that were renamed in this release will still be available until the next major update to avoid breaking changes.)
v1.12.4 (2024-08-31)
✨ New
- Added 
useLayoutEffectanduseInsertionEffectsupport tohooks-extra/no-direct-set-state-in-use-effect 
🪄 Improvements
- Deprecate rule 
hooks-extra/no-direct-set-state-in-use-layout-effectin favor ofhooks-extra/no-direct-set-state-in-use-effect(the previous rule will still be available until the next major update to avoid breaking changes) 
v1.12.3 (2024-08-29)
✨ New
- Added support for detecting event listeners removed by abort signal in rule 
web-api/no-leaked-event-listener 
🐞 Fixes
- Fixed 
no-duplicate-keyrule false positives when the key is a variable - Fixed 
web-api/no-leaked-set-timeoutandweb-api/no-leaked-set-intervalfalse positives when a timer is assigned to a variable declared byletbut not initialized 
v1.12.3 (2024-08-29)
✨ New
- Added support for detecting event listeners removed by abort signal in rule 
web-api/no-leaked-event-listener 
🐞 Fixes
- Fixed 
no-duplicate-keyrule false positives when the key is an variable - Fixed 
web-api/no-leaked-set-timeoutandweb-api/no-leaked-set-intervalfalse positives when a timer is assigned to a variable declared byletbut not initialized 
🪄 Improvements
- Allow upper case letters in the rule 
naming-convention/component-namewhen the component name is less than 4 characters, e.g.UI,CSS,SVG 
v1.12.2 (2024-08-27)
✨ New
- Added type declarations for 
react-xsettings to the@typescript-eslint/utils/ts-eslintmodule via theSharedConfigurationSettingsinterface 
🪄 Improvements
- Improve the performance of the 
no-missing-keyandno-duplicate-keyrules - Upgrade 
@typescript-eslint's packages to^8.3.0 
v1.12.1 (2024-08-22)
✨ New
- Add the options 
allowAllCaps,allowNamespace,allowLeadingUnderscoretonaming-convention/component-nameand set their default values tofalse 
🪄 Improvements
- Normalize the component name in rule 
naming-convention/component-namebefore checking it against the pattern 
v1.12.0 (2024-08-21)
✨ New
- Added 
hooks-extrarules torecommendedandrecommended-legacypresets 
v1.11.0 (2024-08-20)
✨ New
- Added 
eslint-plugin-react-web-api- A plugin that provides rules for interacting with Web APIs in React applications - Added 
web-api/no-leaked-timeoutrule to prevent leakedsetTimeout - Added 
web-api/no-leaked-intervalrule to prevent leakedsetInterval - Added 
web-api/no-leaked-event-listenerrule to prevent leakedaddEventListener - Added 
web-apiandweb-api-legacypresets to enable all rules provided byeslint-plugin-react-web-api - Added 
react-web-api/no-leaked-event-listenertorecommendedandrecommended-legacypresets 
🪄 Improvements
- Improve performance by skipping unnecessary checks when possible
 - Improve dts generation of the 
@eslint-react/eslint-pluginpackage - Improve website and documentation
 - Upgrade 
@typescript-eslint's packages to^8.2.0 
v1.10.1 (2024-08-13)
🐞 Fixes
- Fixed 
hooks-extra/prefer-use-state-lazy-initializationfalse positive when using an initializer function 
🪄 Improvements
- Improve rule 
no-implicit-keyerror marker position and range - Upgrade 
@typescript-eslint's packages to^8.1.0 - Improve website and documentation
 
v1.10.0 (2024-08-11)
✨ New
- Added 
disable-type-checkedanddisable-type-checked-legacypresets to disable all type-checked rules 
🪄 Improvements
- Rename 
off-domandoff-dom-legacypresets todisable-domanddisable-dom-legacy(the old names will still be available until the next major update to avoid breaking changes) 
v1.9.1 (2024-08-08)
🐞 Fixes
- Fixed 
dom/no-missing-iframe-sandboxfalse positive when thesandboxattribute is set tosandbox="" - Fixed 
allandall-legacypresets not includinghooks-extrarules 
v1.9.0 (2024-08-06)
✨ New
- Add 
corepreset that includes the most essential rules 
🪄 Improvements
- Upgrade 
@typescript-eslint's packages to8.0.1 
v1.8.2 (2024-08-03)
🐞 Fixes
- Fixed legacy presets not being exported correctly in 
@eslint-react/eslint-plugin 
v1.8.1 (2024-08-03)
🪄 Improvements
- Enhance rule 
hooks-extra/no-direct-set-state-in-use-effectandhooks-extra/no-direct-set-state-in-use-layout-effectto supportsetfunction directly passed touseCallbackanduseMemowithout explicitly calling it - Improve website and documentation
 
v1.8.0 (2024-08-02)
🐞 Fixes
- Fixed 
ESLintReactSettingstype not being exported correctly - Fixed the 
setfunction calls that are wrapped in auseMemooruseCallbacklike hook not being detected byhooks-extra/no-direct-set-state-in-use-effectandhooks-extra/no-direct-set-state-in-use-layout-effect 
🪄 Improvements
- Upgrade 
@typescript-eslint's packages to8.0.0 - Improve website and documentation
 
v1.7.1 (2024-07-31)
🐞 Fixes
- Fixed the spread attributes support for dom related rules
 - Fixed the issue where the overridden value was retrieved when there were duplicate attributes on a JSX element
 
🪄 Improvements
- Rule 
no-leaked-conditional-renderingnow allows a falsy boolean literal to be used on the left side of the logical expression - Tweaked the default settings shipped with various presets
 - Overall performance improvements
 
v1.7.0 (2024-07-30)
✨ New
- Add 
settings["react-x"].polymorphicPropNamesetting to specify the name of the prop that is used to determine the component type 
🪄 Improvements
- Dropped the current incomplete lint support for 
React.createElementto improve performance and subsequent code maintainability 
v1.6.0 (2024-07-27)
✨ New
- Add 
controlledsetting tosettings["react-x"].additionalComponents'attributesobject to set whether it is controlled or not - Add glob support to 
settings["react-x"].additionalComponents'namesetting - Add default settings for 
react-xsettings to presets - Undeprecate rule 
no-implicit-keyand improve its usefulness - Undeprecate rule 
no-complicated-conditional-renderingand rename it tono-complex-conditional-rendering(the previous rule will still be available until the next major update to avoid breaking changes) 
🐞 Fixes
no-direct-set-state-in-use-(layout?)-effectshould warn only for thesetfunction
🪄 Improvements
- Remove 
no-direct-set-state-in-use-(layout?)-effectfrom recommended presets 
v1.5.30 (2024-07-22)
🐞 Fixes
- Revert 
changeas this format is not supported by all package managers@typescript-eslint's packages independenciesto"^7.16.1 || ^rc-v8" 
v1.5.29 (2024-07-22)
✨ New
- Add rule 
no-prop-types - Add rule 
no-default-props - Add experimental 
settings["react-x"].additionalComponentssettings (currently only theno-unsafe-target-blankrule uses it, but more rules will use it in the future) 
🪄 Improvements
- Add rule 
no-prop-typesto recommended presets - Add rule 
no-default-propsto recommended presets - Remove rule 
no-useless-fragmentfrom recommended presets - Optimize performance of rule 
no-create-ref - Change 
@typescript-eslint' packages independenciesto"^7.16.1 || ^rc-v8" 
v1.5.28 (2024-07-20)
🐞 Fixes
- Fix false positives and negatives in rule 
hooks-extra/no-direct-set-state-in-use-effect - Fix false positives and negatives in rule 
hooks-extra/no-direct-set-state-in-use-layout-effect - Fix rule 
prefer-read-only-propsreports only the first component in a file 
🪄 Improvements
- Improve website and documentation
 
v1.5.27 (2024-07-16)
🐞 Fixes
- Fix rule 
prefer-read-only-propsthat was accidentally added to the recommended type-checked presets - Fix false negatives in rule 
hooks-extra/no-direct-set-state-in-use-effectwhen callsetfunction inside a non-function scope - Fix false negatives in rule 
hooks-extra/no-direct-set-state-in-use-layout-effectwhen callsetfunction inside a non-function scope 
🪄 Improvements
- Rule 
no-leaked-conditional-renderingnow supports BigInt literals on the left side of the logical expression - Rule 
no-leaked-conditional-renderingnow allows a truthy number literal to be used on the left side of the logical expression - Optimize bundle size
 
v1.5.26 (2024-07-15)
✨ New
- Add rule 
hooks-extra/no-direct-set-state-in-use-effect - Add rule 
hooks-extra/no-direct-set-state-in-use-layout-effect 
🐞 Fixes
- Fix false positives in rule 
hooks-extra/ensure-use-memo-has-non-empty-depswhen referencing component block scope - Fix false positives in rule 
hooks-extra/no-unnecessary-use-callbackwhen referencing component block scope 
🪄 Improvements
- Add rule 
hooks-extra/no-direct-set-state-in-use-effectto recommended presets - Add rule 
hooks-extra/no-direct-set-state-in-use-layout-effectto recommended presets - Add rule 
hooks-extra/prefer-use-state-lazy-initializationto recommended presets 
v1.5.25 (2024-07-13)
🪄 Improvements
- Optimize bundle size
 
v1.5.24 (2024-07-11)
🐞 Fixes
- Fix rule 
prefer-read-only-propsfalse positive when usingObjectPatternin function arguments 
🪄 Improvements
- Change 
typescriptversion inpeerDependenciesto"^4.9.5 || ^5.3.3" 
v1.5.23 (2024-07-07)
🐞 Fixes
- Fix rule 
prefer-read-only-propsfalse negative when usingObjectPatternin function arguments 
🪄 Improvements
- Improve website and documentation
 
v1.5.22 (2024-07-05)
✨ New
- Add rule 
prefer-read-only-props 
🪄 Improvements
- Downgrade 
@typescript-eslint's packages to v7, due to stability issues with v8 
v1.5.21 (2024-07-03)
🐞 Fixes
- Add missing dependencies to 
@eslint-react/eslint-plugin - Fix rule 
no-nested-componentsfalse negative when placing components inside JSX props 
🪄 Improvements
- Update 
@typescript-eslint's packages to v8 - Improve rule 
no-leaked-conditional-renderingcompatibility with different versions oftypescript-eslint 
v1.5.20 (2024-07-02)
🐞 Fixes
- Fix rule 
prefer-destructuring-assignmentfalse positive when the function looks like a component 
🪄 Improvements
- Improve 
utilities/jsx/is-jsx-valueto better distinguish between normal values and JSX values - Improve 
core/component-collectorto better distinguish between normal functions and components - Prevent potential function component detection related false positives
 - Switch to a more appropriate value for 
DEFAULT_COMPONENT_DETECTION_HINT 
v1.5.19 (30 Sun Jun 2024)
🪄 Improvements
- Reduce the number of dependencies by inlining tree-shaking optimized code while bundling
 - Deprecate 
reactOptionsin favor ofreact-xin ESLint Shared Settings 
v1.5.18 (28 Fri Jun 2024)
🐞 Fixes
- Fix rule 
no-useless-fragmentnot respectingjsxPragmasettings 
🪄 Improvements
- Update documentation for rule 
no-useless-fragmentto reflect the actual behavior of the rule 
v1.5.17 (2024-06-26)
🪄 Improvements
- Remove rule 
no-children-propfrom recommended presets - Improve documentation for rule 
no-useless-fragment 
v1.5.16 (2024-06-17)
🐞 Fixes
- Fix debug rules not exporting correctly in 
@eslint-react/eslint-plugin 
🪄 Improvements
- Remove rule 
prefer-shorthand-booleanfrom recommended presets - Remove rule 
prefer-shorthand-fragmentfrom recommended presets - Remove rule 
prefer-destructuring-assignmentfrom recommended presets 
v1.5.15 (2024-06-08)
🐞 Fixes
- Remove 
languageOptions.parserfrom presets - Remove 
@typescript-eslint/parserfrom peer dependencies - Rule 
no-leaked-conditional-rendering: object should be considered as valid left-hand type 
v1.5.14 (2024-05-30)
✨ New
- Add rule 
avoid-shorthand-boolean - Add rule 
avoid-shorthand-fragment 
🐞 Fixes
- Fix rule 
dom/no-missing-button-typefalse positive when usingtypeattribute in a JSX expression 
v1.5.13 (2024-05-28)
🐞 Fixes
- Fix components that use 
getDerivedStateFromErrorshould not be warned by ruleno-class-component 
🪄 Improvements
- Update 
@typescript-eslint's packages to7.11.0 
v1.5.12 (2024-05-17)
🐞 Fixes
- Fix ESLint peer dependency range in 
package.json 
🪄 Improvements
- Update 
@typescript-eslint's packages to7.9.0 - Minor improvements
 
v1.5.11 (2024-05-08)
✨ New
- Rule 
no-class-componentrule now allows class components with acomponentDidCatchmethod - Settings 
reactOptionsnow supportsimportSourceto specify the import source for React 
🗑️ Deprecations
- Deprecate rule 
no-implicit-keybecause it is stylistic and opinionated - Deprecate rule 
no-complicated-conditional-renderingbecause it is stylistic and opinionated 
🪄 Improvements
- Refactor React pragma and import name retrieval utils to support custom import source
 - Update 
@typescript-eslint's packages to7.8.0 
v1.5.10 (2024-04-28)
🪄 Improvements
- Update 
reactto18.3.1 - Update 
@typescript-eslint's packages to7.7.1 - Use a wider range of peerDependencies
 
v1.5.9 (2024-04-19)
🪄 Improvements
- Optimize error messages of rules
 - Update 
@typescript-eslint's packages to7.7.0 
v1.5.8 (2024-04-11)
🪄 Improvements
- Update 
@typescript-eslint's packages to7.6.0 
v1.5.7 (2024-03-28)
🪄 Improvements
- Update 
@typescript-eslint's packages to7.4.0 
v1.5.6 (2024-03-12)
🪄 Improvements
- Update 
@typescript-eslint's packages to7.2.0 
v1.5.5 (2024-02-18)
🐞 Fixes
- Fix rule 
no-component-will-receive-propsnot working as expected 
🪄 Improvements
- Improve error messages and code samples in rule docs
 
v1.5.4 (2024-02-16)
🐞 Fixes
- Fix rule 
dom/no-render-return-valuenot renamed in v1.0.0 
🪄 Improvements
- Improve code samples in rule docs
 - Update 
effectto2.3.5 - Update 
@typescript-eslint's packages to7.0.1 
v1.5.3 (2024-02-10)
🪄 Improvements
- Improve diagnostic messages
 - Remove needless deps from 
peerDependencies - Update 
@typescript-eslint's packages to6.21.0 
v1.5.2 (2024-01-31)
🪄 Improvements
- Remove needless deps from 
peerDependencies - Update 
@typescript-eslint's packages to6.20.0 - Update 
effectto2.2.3 
v1.5.2-beta.2 (2024-01-31)
🪄 Improvements
- Update 
effectto2.2.3 - Remove needless deps from 
peerDependencies 
v1.5.2-beta.0 (2024-01-30)
🪄 Improvements
- Update 
@typescript-eslint's packages to6.20.0 
v1.5.1 (2024-01-29)
✨ New
- Add 
off-domandoff-dom-legacypresets to disable all DOM related rules 
🪄 Improvements
- Reduce dependencies size
 
v1.5.0 (2024-01-29)
💥 Breaking Changes
- Remove rule 
max-depth - Rename rule 
no-spreading-keytono-implicit-key - Rename rule 
no-constructed-context-valuetono-unstable-context-value - Rename rule 
no-unstable-nested-componentstono-nested-components - Switch to new name prefix of rules in 
@eslint-react/eslint-plugin- Replace 
jsx/with `` in rule names - Replace 
react/with `` in rule names - Replace 
react-dom/withdom/in rule names - Replace 
react-hooks/withhooks-extra/in rule names 
 - Replace 
 - Switch to new settings schema
- Put settings under 
reactOptionsinstead ofeslintReact - Replace 
jsx.pragmawithjsxPragma - Replace 
jsx.fragmentwithjsxPragmaFrag - Replace 
react.versionwithversion - Remove 
jsx.extensions 
 - Put settings under 
 
v1.0.2 (2024-01-27)
🐞 Fixes
- Fix rule 
react-dom/no-namespacenot renamed in v1.0.0 - Fix rule 
react-dom/no-void-elements-with-childrennot renamed in v1.0.0 
🪄 Improvements
- Improve rules overview page on website
 - Remove 
jsxandhookspresets from documentation 
v1.0.1 (2024-01-27)
🪄 Improvements
- Improve 
jsxandjsx-legacypresets - Improve 
coreandcore-legacypresets - Improve 
recommendedandrecommended-legacypresets - Improve 
recommended-type-checkedandrecommended-type-checked-legacypresets 
v1.0.0 (2024-01-27)
💥 Breaking Changes
All DOM related rules are moved to react-dom namespace
- Rename rule 
react/no-void-elements-with-childrentoreact-dom/no-void-elements-with-children - Rename rule 
react/no-dangerously-set-innerhtml-with-childrentoreact-dom/no-dangerously-set-innerhtml-with-children - Rename rule 
react/no-dangerously-set-innerhtmltoreact-dom/no-dangerously-set-innerhtml - Rename rule 
react/no-find-dom-nodetoreact-dom/no-find-dom-node - Rename rule 
react/no-missing-button-typetoreact-dom/no-missing-button-type - Rename rule 
react/no-missing-iframe-sandboxtoreact-dom/no-missing-iframe-sandbox - Rename rule 
react/no-namespacetoreact-dom/no-namespace - Rename rule 
react/no-render-return-valuetoreact-dom/no-render-return-value - Rename rule 
react/no-script-urltoreact-dom/no-script-url - Rename rule 
react/no-unsafe-iframe-sandboxtoreact-dom/no-unsafe-iframe-sandbox - Rename rule 
react/no-unsafe-target-blanktoreact-dom/no-unsafe-target-blank 
✨ New
- Make 
doman alias ofreact-dompreset - Make 
hooksan alias ofreact-hookspreset - Add preset 
jsxandjsx-legacy - Add preset 
react-domanddom-legacy - Add preset 
coreandcore-legacy - Add preset 
react-hooksandhooks-legacy 
🐞 Fixes
- Fix the lint message for rule 
react-dom/no-dangerously-set-innerhtml 
v1.0.0-beta.3 (2024-01-26)
🐞 Fixes
- Fix the name prefix for react-dom rules
 
v1.0.0-beta.2 (2024-01-26)
✨ New
- Make 
doman alias ofreact-dompreset - Make 
hooksan alias ofreact-hookspreset 
v1.0.0-beta.1 (2024-01-26)
✨ New
- Add preset 
jsxandjsx-legacy - Add preset 
domanddom-legacy - Add preset 
coreandcore-legacy - Add preset 
hooksandhooks-legacy 
v1.0.0-beta.0 (2024-01-26)
💥 Breaking Changes
All DOM related rules are moved to react-dom namespace
- Rename rule 
react/no-dangerously-set-innerhtmltoreact-dom/no-dangerously-set-innerhtml - Rename rule 
react/no-dangerously-set-innerhtml-with-childrentoreact-dom/no-dangerously-set-innerhtml-with-children - Rename rule 
react/no-find-dom-nodetoreact-dom/no-find-dom-node - Rename rule 
react/no-missing-button-typetoreact-dom/no-missing-button-type - Rename rule 
react/no-missing-iframe-sandboxtoreact-dom/no-missing-iframe-sandbox - Rename rule 
react/no-script-urltoreact-dom/no-script-url - Rename rule 
react/no-unsafe-iframe-sandboxtoreact-dom/no-unsafe-iframe-sandbox - Rename rule 
react/no-unsafe-target-blanktoreact-dom/no-unsafe-target-blank 
v0.10.12 (2024-01-21)
🪄 Improvements
- Remove unnecessary 
parserOptionsfields from presets 
v0.10.12-beta.0 (2024-01-21)
🪄 Improvements
- Remove unnecessary 
parserOptionsfields from presets 
v0.10.11 (2024-01-20)
✨ New
- Add rule 
react/no-access-state-in-setstate 
🪄 Improvements
- Improve rule 
react/no-unused-stateto respect the usage ofgetDerivedStateFromProps - Update 
@typescript-eslint's packages to6.19.0 
v0.10.11-beta.2 (2024-01-19)
✨ New
- Add rule 
react/no-access-state-in-setstate 
v0.10.11-beta.1 (2024-01-16)
🪄 Improvements
- Update 
@typescript-eslint's packages to6.19.0 
v0.10.11-beta.0 (2024-01-15)
🪄 Improvements
- Improve rule 
react/no-unused-stateto respect the usage ofgetDerivedStateFromProps 
v0.10.10 (2024-01-14)
🪄 Improvements
- Improve rule 
react/no-unused-stateto support checking for more cases - Improve rule 
react/no-direct-mutation-stateto support checking for more cases - Improve rule 
react/no-unused-class-component-membersto support checking for more cases 
v0.10.10-beta.0 (2024-01-14)
🪄 Improvements
- Improve rule 
react/no-unused-stateto support checking for more cases - Improve rule 
react/no-direct-mutation-stateto support checking for more cases - Improve rule 
react/no-unused-class-component-membersto support checking for more cases 
v0.10.9 (2024-01-12)
🐞 Fixes
- Fix bundle size is larger than expected
 
v0.10.8 (2024-01-11)
🐞 Fixes
- Fix version format in v0.10.7's package.json
 
v0.10.7 (2024-01-11)
✨ New
- Add rule 
react/no-unused-state 
v0.10.6 (2024-01-09)
🐞 Fixes
- Fix an issue where 
react/no-constructed-context-valueandreact/no-unstable-default-propswould report false negatives when using LogicalExpression and ConditionalExpression 
v0.10.6-beta.0 (2024-01-08)
🐞 Fixes
- Fix an issue where 
react/no-constructed-context-valueandreact/no-unstable-default-propswould report false negatives when using LogicalExpression and ConditionalExpression 
v0.10.5 (2024-01-08)
✨ New
- Add rule 
react/no-unused-class-component-members 
🪄 Improvements
- Update 
@typescript-eslint's packages to6.18.0 
v0.10.5-beta.0 (2024-01-07)
✨ New
- Add rule 
react/no-unused-class-component-members 
🪄 Improvements
- Update 
@typescript-eslint's packages to6.18.0 
v0.10.4 (2024-01-06)
🪄 Improvements
- Improve rule 
react/no-unstable-default-propsto support checking for ObjectPatterns within VariableDeclarators that occur on props - Improve function component detection in rule 
react/no-unstable-nested-componentsanddebug/function-component 
🐞 Fixes
- Fix same kind of error inside a component should not only be reported once in rule 
react/no-create-refandreact/no-constructed-context-value - Fix an issue where render functions wrapped in 
useCallbackwere accidentally detected as function components in rulesreact/no-unstable-nested-componentsanddebug/function-component 
v0.10.4-beta.1 (2024-01-06)
🪄 Improvements
- Improve function component detection in rule 
react/no-unstable-nested-componentsanddebug/function-component 
🐞 Fixes
- Fix an issue where render functions wrapped in 
useCallbackwere accidentally detected as function components in rulesreact/no-unstable-nested-componentsanddebug/function-component 
v0.10.4-beta.0 (2024-01-06)
🪄 Improvements
- Improve rule 
react/no-unstable-default-propsto support checking for ObjectPatterns within VariableDeclarators that occur on props 
🐞 Fixes
- Fix same kind of error inside a component should not only be reported once in rule 
react/no-create-refandreact/no-constructed-context-value 
v0.10.3 (2024-01-05)
🪄 Improvements
- Update 
@typescript-eslint's packages to6.17.0 
v0.10.3-beta.0 (2024-01-02)
🪄 Improvements
- Update 
@typescript-eslint's packages to6.17.0 
v0.10.2 (2023-12-30)
✨ New
- Add 
reactHooks.aliassetting support 
v0.10.2-beta.0 (2023-12-30)
✨ New
- Add 
reactHooks.aliassetting support 
v0.10.1 (2023-12-27)
🪄 Improvements
- Add 
react/no-clone-elementtorecommendedandrecommended-legacypresets - Improve rule 
react/no-unstable-nested-components, make its behavior closer to react-hooks/no-nested-components - Update 
@typescript-eslint's packages to6.16.0 
v0.10.1-beta.1 (2023-12-26)
🪄 Improvements
- Update 
@typescript-eslint's packages to6.16.0 
v0.10.1-beta.0 (2023-12-25)
🪄 Improvements
- Add 
react/no-clone-elementtorecommendedandrecommended-legacypresets - Improve rule 
react/no-unstable-nested-components, make its behavior closer to react-hooks/no-nested-components 
v0.10.0 (2023-12-21)
✨ New
- Add rule 
jsx/max-depth 
🪄 Improvements
- Improve 
recommendedandrecommended-legacypresets 
v0.10.0-beta.0 (2023-12-21)
✨ New
- Add rule 
jsx/max-depth 
🪄 Improvements
- Improve 
recommendedandrecommended-legacypresets 
v0.9.8 (2023-12-19)
✨ New
- Add rule 
react/ensure-forward-ref-using-ref 
🪄 Improvements
- Reduce false positives in rule 
react/no-unstable-nested-components - Reduce false positives in rule 
debug/function-component - Optimize 
recommendedandrecommended-legacypresets - Update 
@typescript-eslint's packages to6.15.0 
v0.9.8-beta.2 (2023-12-19)
🪄 Improvements
- Optimize 
recommendedandrecommended-legacypresets 
v0.9.8-beta.1 (2023-12-19)
🪄 Improvements
- Minor improvements
 
v0.9.8-beta.0 (2023-12-17)
✨ New
- Add rule 
react/ensure-forward-ref-using-ref 
🪄 Improvements
- 
Reduce false positives in rule
react/no-unstable-nested-components - 
Reduce false positives in rule
debug/function-component 
v0.9.7 (2023-12-17)
💥 Breaking Changes
- Rule 
named-convention/filename-extensionrenameruleoption toallow 
🐞 Fixes
- Fix where functions in 
<Component footer={() => <div />} />or<Component Footer={() => <div />} />are treated as components - Fix false positive in rule 
react/no-unstable-nested-components - Fix false positive in rule 
debug/function-component 
🪄 Improvements
- 
Rules now support reading JSX extensions from
settings.eslintReact.jsx.extensions - 
Replace ❌ Incorrect and ✅ Correct with Failing and Passing in rule docs
 
v0.9.7-beta.2 (2023-12-16)
🐞 Fixes
- Update default rule option in 
named-convention/filenametoPascalCase 
v0.9.7-beta.1 (2023-12-14)
🪄 Improvements
- Minor improvements
 
v0.9.7-beta.0 (2023-12-14)
💥 Breaking Changes
- Rule 
named-convention/filename-extensionrenameruleoption toallow 
✨ New
- Rule 
named-convention/filenameaddextensionsoption - Rule 
named-convention/filename-extensionaddextensionsoption 
v0.9.6 (2023-12-12)
✨ New
- Add rule 
react-hooks/prefer-use-state-lazy-initialization 
🪄 Improvements
- Rule 
named-convention/component-nameadd bothstringandobjectoptions support - Rule 
named-convention/filenameadd bothstringandobjectoptions support - Rule 
named-convention/filename-extensionadd bothstringandobjectoptions support - Rule 
debug/react-hooksreportshookCalls.lengthinstead ofcost - Update 
@typescript-eslint's packages to6.14.0 
v0.9.6-beta.5 (2023-12-12)
🪄 Improvements
- Update 
@typescript-eslint's packages to6.14.0 
v0.9.6-beta.4 (2023-12-11)
🪄 Improvements
- Rule 
named-convention/component-nameadd bothstringandobjectoptions support - Rule 
named-convention/filenameadd bothstringandobjectoptions support - Rule 
named-convention/filename-extensionadd bothstringandobjectoptions support 
v0.9.6-beta.3 (2023-12-11)
🪄 Improvements
- Remove rule 
react-hooks/prefer-use-state-lazy-initializationfromrecommendedandrecommended-legacypresets 
v0.9.6-beta.2 (2023-12-11)
✨ New
- Add rule 
react-hooks/prefer-use-state-lazy-initialization 
🪄 Improvements
- Rule 
named-convention/filename-extensionswitch options format from object to string 
v0.9.6-beta.1 (2023-12-11)
🪄 Improvements
- Rule 
debug/react-hooksreportshookCalls.lengthinstead ofcost 
v0.9.5 (2023-12-11)
🪄 Improvements
- Improve rule 
jsx/no-leaked-conditional-renderingerror marker position and range - Improve rule 
react/no-missing-button-typeerror marker position and range - Improve rule 
react/no-missing-iframe-sandboxerror marker position and range - Improve rule 
react/no-unsafe-iframe-sandboxerror marker position and range 
v0.9.4 (2023-12-08)
🪄 Improvements
- Improve rule docs
 
v0.9.3 (2023-12-08)
✨ New
- Add rule 
react/no-direct-mutation-state - Add rule 
naming-convention/use-state 
🪄 Improvements
- Update 
recommendedandrecommended-legacypresets - Improve rules overview page
 
v0.9.2 (2023-12-06)
✨ New
- Add rule 
react/no-component-will-update - Add rule 
react/no-unsafe-component-will-update - Add rule 
react/no-component-will-receive-props - Add rule 
react/no-unsafe-component-will-receive-props - Add rule 
react/no-set-state-in-component-did-mount - Add rule 
react/no-set-state-in-component-did-update - Add rule 
react/no-set-state-in-component-will-update 
v0.9.1 (2023-12-05)
✨ New
- Add rule 
react/no-component-will-mount - Add rule 
react/no-unsafe-component-will-mount 
v0.9.0 (2023-12-01)
💥 Breaking Changes
@eslint-react/eslint-plugin-jsx- Remove 
allowExpressionsoption from rulejsx/no-useless-fragment 
- Remove 
 @eslint-react/jsx- Remove 
isFragmentWithOnlyTextAndIsNotChild,isFragmentHasLessThanTwoChildren,isFragmentWithSingleExpressionfrom@eslint-react/jsx's API 
- Remove 
 
✨ New
- Add rule 
react/no-redundant-should-component-update 
🪄 Improvements
- Update Options of rule 
jsx/no-useless-fragment - Optimize bundle size