What's Changed
🐞 Fixes
react-jsx/no-key-after-spread: the fast-path text check now matcheskeyassignments with whitespace around=(ex:<div {...props} key = {id} />or a newline before=), so such elements are no longer silently skipped. (#2043) Thanks to @amir-rahmanii!react-jsx/no-children-prop: achildrenprop alongside nested children content (ex:<div children="x">y</div>,createElement("div", { children: "x" }, "y")) is no longer reported by this rule — that conflict case belongs toreact-jsx/no-children-prop-with-children— removing the unsafe merge suggestion and the duplicate diagnostics. (#2044) Thanks to @amir-rahmanii!react-jsx/no-children-prop-with-children: empty expression containers (ex:{},{/* comment */}) are no longer treated as meaningful children, so<div children="x">{/* comment */}</div>is no longer reported. (#2045) Thanks to @amir-rahmanii!
📝 Documentation
react-naming-convention/ref-name: corrected theadditionalRefHooksexample to use the/pattern/flagsRegExp string form; a bare(a|b)string is treated as exact equality and never matches. (#2042) Thanks to @amir-rahmanii!- The settings docs examples for the additional hooks settings now use full RegExp strings. (#2047)
🏗️ Internal
@eslint-react/jsx:hasChildrennow treats empty expression containers as non-meaningful, aligned withgetChildren. (#2045)react-x: refactored the internals ofset-state-in-effect,set-state-in-render, andstatic-componentsfor readability; no behavior change. (#2041)- Bumped
vitestto5.0.5,nextto16.4.2,fumadocs-coreandfumadocs-uito16.17.4, andundicito8.12.2.
Full Changelog: v5.27.2...v5.27.3
Attestation
https://github.com/Rel1cx/eslint-react/attestations/56548340