Skip to content

v5.30.0-beta.0 (2026-10-25)

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Oct 20:23
· 107 commits to main since this release
Immutable release. Only release title and notes can be modified.
33e29ad

What's Changed

✨ New

  • react-x/set-state-in-effect: reworked around explicit effect roots and a synchronous call graph, unifying stable aliases, multi-level helpers, named setups, IIFEs, and useCallback/useMemo/useEffectEvent wrappers; indirect diagnostics point at the effect-side trigger, and async functions stay deferred. (#2075)

🐞 Fixes

  • react-x/set-state-in-effect: resolve TypeScript-wrapped setups (ex: useEffect((setup as () => void)!, [])). (#2075)
  • react-x/set-state-in-effect: report zero-argument setters called directly in the setup (ex: setData()), matching indirect calls. (#2075)
  • react-x/set-state-in-effect: no longer treat timer or event callbacks nested in useCallback/useEffectEvent as synchronous setters. (#2075)
  • react-x/set-state-in-effect: extend ref provenance to TypeScript assertions, computed keys, local getters, and state-held DOM nodes from callback refs; same-branch plain writes replace ref-derived ones, guard-test setters cannot self-exempt, and ref guards propagate through helpers and IIFEs. (#2075)
  • react-x/set-state-in-effect: analyze nested and outer effect setups independently. (#2075)

📝 Documentation

  • react-x/set-state-in-effect: documented synchronous helper calls, deferred callbacks, and the expanded ref-derived value rules. (#2075)

🏗️ Internal

  • react-x/set-state-in-effect, react-x/set-state-in-render: recognize setters only as the second element of a useState array destructuring; tuple-index access and object-pattern numeric keys are no longer detected. (#2075)
  • @eslint-react/ast: added Check.isLoopStatement; @eslint-react/core and @eslint-react/kit: narrowed the accepted node types of hook/component detection helpers and matching RuleToolkit.is signatures, and updated the custom-rule sample. (#2075)
  • Bumped next to 16.4.3, the fumadocs packages, tsdown to 0.23.2, nx to 23.3.1, eslint-plugin-package-json to 1.11.0, and preact to 11.0.2.

Full Changelog: v5.28.8...v5.30.0-beta.0

Attestation

https://github.com/Rel1cx/eslint-react/attestations/59473062