Repository navigation
v5.30.0-beta.4 (2026-10-26)
Pre-release
Pre-release
·
15 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
What's Changed
🐞 Fixes
react-x/set-state-in-effect: report every possible setter when the callee may resolve to multiple setters (ex:(cond ? setA : setB)(1)). (#2082)react-x/set-state-in-effect: apply the ref-derived exemption to any argument position of a custom state hook's setter (ex:setValue(0, ref.current)). (#2082)react-x/set-state-in-effect: ref-derived early-return guards now gate the following statements as theelsebranch insidetry/switch/bare blocks and in loop bodies or update clauses; atrywhose paths all terminate now counts as terminating. (#2082, #2083)react-x/set-state-in-effect: follow ref provenance through IIFEs, including nested and TypeScript-wrapped ones; deferred and async/generator writes stay excluded. (#2082)react-x/set-state-in-effect: report setter calls reached through the same effect-side trigger once per setter name. (#2082)
📝 Documentation
react-x/set-state-in-effect: note that files without ause…Effectname in their source are skipped, limitingadditionalEffectHookspatterns that lack theEffectsuffix. (#2082)
🏗️ Internal
@eslint-react/ast: added theAnalyzenamespace (isTerminatingStatement,isUnconditionallyTerminating), now used byreact-x/set-state-in-effectandreact-x/refs. (#2083)
Full Changelog: v5.30.0-beta.3...v5.30.0-beta.4
Attestation
https://github.com/Rel1cx/eslint-react/attestations/59728237