unstale

npm / @eslint-react/eslint-plugin

@eslint-react/eslint-plugin

What changed in @eslint-react/eslint-plugin 2 to 5, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-27.

30 breaking10 new APIs and options3 behavior and defaults6 tooling12 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.8 on npm

@eslint-react/eslint-plugin 513 changes

Breaking changes 3

  • Class declarations in a component body are recognized as per-render constructions, so using one as a context value is reported.

    5.28.3release notes

  • Identifier resolution is bounded by the enclosing component scope: render-scoped values in nested callbacks are detected, module-level values are treated as stable, and nested components report each value once from the innermost component.

    5.28.3release notes

  • Class declarations in a component body are recognized as per-render constructions, so using one as a default prop is reported.

    5.28.3release notes

Behavior and default changes 1

  • General-purpose presets now enable JSX syntax support, so you no longer need to configure it yourself.

    5.28.0release notes

Fixes and other changes 9

  • Builtin member resolution no longer follows computed or unknown middle segments, preventing false reports of non-builtin calls.

    5.28.8release notes

  • Now reports Date calls during render, including Date(), Date(arg), and window.Date(); unlike new Date(arg), Date(arg) always returns the current time.

    5.28.7release notes

  • The ref-derived parameter exemption now also applies to helpers wrapped in useCallback.

    5.28.6release notes

  • The suggested fix now adds rel="noreferrer" instead of rel="noreferrer noopener", because noreferrer already implies noopener; values combining both tokens remain valid.

    5.28.5release notes

  • Reverted component-scope-bounded identifier resolution and per-component single-report attribution; class declarations in a component body remain recognized as per-render constructions.

    5.28.4release notes

  • Reverted component-scope-bounded identifier resolution and per-component single-report attribution; class declarations in a component body remain recognized as per-render constructions.

    5.28.4release notes

  • Identifier resolution is bounded by the enclosing component scope: render-scoped values in nested callbacks are detected, module-level values are treated as stable, and nested components report each value once from the innermost component.

    5.28.3release notes

  • The script now emits YAML-safe quoted descriptions so scaffolded rules cannot reintroduce the website build failure.

    5.28.2release notes

  • Stops reporting the React camelCase SVG prop renderingIntent as unknown, including when produced by the rule's autofix for rendering-intent.

    5.28.1release notes

@eslint-react/eslint-plugin 248 changes

Breaking changes 27

  • This setting is discontinued; rules now use improved heuristics and no longer require manual configuration.

    2.0.0release notes

  • This setting is discontinued; rules now use improved heuristics and no longer require manual configuration.

    2.0.0release notes

  • This rule is removed; use jsx-shorthand-boolean instead.

    2.0.0release notes

  • This rule is removed; use jsx-shorthand-fragment instead.

    2.0.0release notes

  • CommonJS support is dropped; packages are distributed only as ECMAScript Modules.

    2.0.0release notes

  • The core preset is removed and replaced by x.

    2.0.0release notes

  • This rule is removed and renamed to dom/no-void-elements-with-children.

    2.0.0release notes

  • This rule is removed and renamed to no-forward-ref.

    2.0.0release notes

  • ESLint 8 support is dropped; ESLint 9.3.6 is the minimum required version.

    2.0.0release notes

  • The legacy ESLint config system is no longer supported; configure the plugin with ESLint Flat Config.

    2.0.0release notes

  • This rule is removed; use hooks-extra/no-direct-set-state-in-use-effect instead.

    2.0.0release notes

  • This rule is relocated to no-unnecessary-use-callback.

    2.0.0release notes

  • This rule is relocated to no-unnecessary-use-memo.

    2.0.0release notes

  • This rule is relocated to no-unnecessary-use-prefix.

    2.0.0release notes

  • This rule is relocated to use-state.

    2.0.0release notes

  • This rule is removed and renamed to jsx-no-comment-textnodes.

    2.0.0release notes

  • This rule is discontinued with no replacement listed.

    2.0.0release notes

  • This rule is removed and renamed to jsx-no-duplicate-props.

    2.0.0release notes

  • This rule is removed and renamed to no-nested-component-definitions.

    2.0.0release notes

  • Node.js 18 support is dropped; Node.js 20 is the minimum required version.

    2.0.0release notes

  • The off-dom preset is removed and replaced by disable-dom.

    2.0.0release notes

  • This rule is removed and renamed to prefer-namespace-import.

    2.0.0release notes

  • This rule is removed; use jsx-shorthand-boolean instead.

    2.0.0release notes

  • This rule is removed; use jsx-shorthand-fragment instead.

    2.0.0release notes

  • This setting is discontinued; rules now use improved heuristics and no longer require manual configuration.

    2.0.0release notes

  • TypeScript 4 support is dropped; TypeScript 5.9.2 is the minimum required version.

    2.0.0release notes

  • This rule is removed and renamed to jsx-uses-vars.

    2.0.0release notes

New APIs and options 10

  • New configuration preset disables eslint-plugin-react rules that conflict with rules in these plugins.

    2.0.0release notes

  • This rule now supports suggestion fixes.

    2.0.0release notes

  • New rule disallows string values for the style prop.

    2.0.0release notes

  • This rule now supports suggestion fixes.

    2.0.0release notes

  • New rule enforces using a namespace import for react-dom.

    2.0.0release notes

  • New rule enforces a consistent style for boolean attributes.

    2.0.0release notes

  • New rule enforces a consistent style for React Fragments.

    2.0.0release notes

  • New rule disallows specific props on components.

    2.0.0release notes

  • New rule reports unnecessary key props on elements.

    2.0.0release notes

  • New rule reports unused props in components and is included in the recommended-type-checked preset.

    2.0.0release notes

Behavior and default changes 2

Tooling 6

Fixes and other changes 3

  • Fixes a false positive for React Hooks defined within a vi.mock(...) callback in Vitest test files.

    2.0.0release notes

  • Fixes false positives on well-known filenames.

    2.0.0release notes

  • The useEffect setup function check now handles React.useEffect() calls correctly.

    2.0.0release notes