npm @eslint-react/eslint-plugin 5.24.0
v5.24.0 (2026-10-04)

2 hours ago

What's Changed

🐞 Fixes

  • react-x/set-state-in-effect: more value shapes are recognized as ref-derived setState arguments: 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, and react-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, with lib.ts replaced by a pure-AST helpers.ts; set-state-in-effect again classifies a hook name configured as both additionalStateHooks and additionalEffectHooks as a state hook first. (#1983, #1985, #1986)
  • react-x/use-state: aligned the nested-expression collectors' visitor keys to callee-first order, matching eslint-visitor-keys; no behavior change. (#1988)
  • Migrated package unit tests to the shared @local/testkit helpers. (#1987)
  • Renamed message ids to kebab-case across all plugins. (#1984)
  • Bumped fumadocs-core and fumadocs-ui to 16.15.18, fumadocs-mdx to 15.4.6, lucide-react to 1.50.0, and @types/node to 26.6.4.

Full Changelog: v5.23.5...v5.24.0

Attestation

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

Don't miss a new eslint-plugin release

NewReleases is sending notifications on new releases.