What's Changed
🐞 Fixes
react-x/immutability: reassigning a binding that resolves to component props or state (value = value + "!",count++, including destructuring andfor...ofrebinding forms) is now reported as a direct mutation, matching upstreamreact-hooks/immutability; rebinding iterator or shallow-copy bindings remains allowed. (#1979)react-x/set-state-in-effect: ref reads traced through intermediate local computations (ex:const dv = visible - prevVisible.current) are now recognized as ref-derived values, and a preceding early-return guard whose test is ref-derived (ex:if (dv === 0) return;) now exempts thesetStatecalls that follow it — previously onlysetStatenested directly inside a ref-gatedif/conditional was exempted. Aligns withreact-hooks7.1.1. (#1979)
📝 Documentation
react-x/no-unstable-context-value: documented the React 19<Context>provider detection heuristic and its name-based limitations. (#1979)- Updated the README badges to reference
eslint-plugin-react-x.
Full Changelog: v5.23.2...v5.23.3
Attestation
https://github.com/Rel1cx/eslint-react/attestations/51510644