·
1 commit
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: more value shapes are recognized as ref-derivedsetStatearguments: interpolations in template literals (ex:setData(`${ref.current}`)), tagged templates (both the quasi and a ref-derived tag), object and array literals (ex:setData({ value: ref.current })), and spreads (ex:setData({ ...ref.current })) — previously these fell through to the default case and were reported. (#1988)
📝 Documentation
- Added eslint-config-xo-react to the website's community presets.
🏗️ Internal
@local/eff: added predicate combinators and type guards synced with effect, and migrated call sites across the workspace to them. (#1989)react-x/set-state-in-effect,react-x/set-state-in-render, andreact-x/use-memo: reworked to the fact-based implementation pattern — fact collection (collect.ts), provenance resolution (origins.ts), and violation inference (effects.ts) are now separate modules, withlib.tsreplaced by a pure-ASThelpers.ts;set-state-in-effectagain classifies a hook name configured as bothadditionalStateHooksandadditionalEffectHooksas a state hook first. (#1983, #1985, #1986)react-x/use-state: aligned the nested-expression collectors' visitor keys to callee-first order, matchingeslint-visitor-keys; no behavior change. (#1988)- Migrated package unit tests to the shared
@local/testkithelpers. (#1987) - Renamed message ids to kebab-case across all plugins. (#1984)
- Bumped
fumadocs-coreandfumadocs-uito16.15.18,fumadocs-mdxto15.4.6,lucide-reactto1.50.0, and@types/nodeto26.6.4.
Full Changelog: v5.23.5...v5.24.0
Attestation
https://github.com/Rel1cx/eslint-react/attestations/52483752