NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #866 most downloaded on npm
React specific linting rules for ESLint
Last release 2 years ago
no release in 18 months
Release timing varies
gaps range from 9 days to 3 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
3 versions withdrawn
withdrawn after publishing
12 years old
216 releases · first in 2014
no-unknown-property : allow shadow root attrs on <template> ( #3912 @ljharb )
no-unknown-property: allow shadow root attrs on <template> (#3912 @ljharb)prop-types: support ComponentPropsWithRef from a namespace import (#3651 @corydeppen)jsx-no-constructed-context-values: detect constructed context values in React 19 <Context> usage (#3910 @TildaDares)no-unknown-property: allow transform-origin on rect (#3914 @ljharb)button-has-type: clean up phrasing (#3909 @hamirmahal)One column per quarter.
no-unknown-property]: allow shadow root attrs on <template> (#3912 @ljharb)prop-types]: support ComponentPropsWithRef from a namespace import (#3651 @corydeppen)jsx-no-constructed-context-values]: detect constructed context values in React 19 <Context> usage (#3910 @TildaDares)no-unknown-property]: allow transform-origin on rect (#3914 @ljharb)button-has-type]: clean up phrasing (#3909 @hamirmahal)no-unknown-property : support onBeforeToggle , popoverTarget , popoverTargetAction attributes ( #3865 @acusti )
no-unknown-property: support onBeforeToggle, popoverTarget, popoverTargetAction attributes (#3865 @acusti)no-danger : avoid a crash on a nested component name ( #3833 @ljharb )
no-danger: avoid a crash on a nested component name (#3833 @ljharb)no-unknown-property: support precedence prop in react 19 (#3829 @acusti)prop-types: props missing in validation when using generic types from a namespace import (#3859 @rbondoc96)jsx-no-script-url: Improve tests (#3849 @radu2147)default-props-match-prop-types, jsx-boolean-value, jsx-curly-brace-presence, jsx-no-bind, no-array-index-key, no-is-mounted, no-render-return-value, require-default-props (#3841 @bastiendmt)destructuring-assignment : fix false negative when using typeof props.a ( #3835 @golopot)
destructuring-assignment: fix false negative when using typeof props.a (#3835 @golopot)destructuring-assignment: use getParentStatelessComponent (#3835 @golopot)destructuring-assignment]: fix false negative when using typeof props.a (#3835 @golopot)destructuring-assignment]: use getParentStatelessComponent (#3835 @golopot)[meta] do not npmignore d.ts files ( #3836 @ljharb )
d.ts files (#3836 @ljharb)add type generation ( #3830 @voxpelli )
no-unescaped-entities: add suggestions (#3831 @StyleShit)forbid-component-props: add allowedForPatterns/disallowedForPatterns options (#3805 @Efimenko)no-unstable-nested-components: add propNamePattern to support custom render prop naming conventions (#3826 @danreeves)no-unescaped-entities]: add suggestions (#3831 @StyleShit)forbid-component-props]: add allowedForPatterns/disallowedForPatterns options (#3805 @Efimenko)no-unstable-nested-components]: add propNamePattern to support custom render prop naming conventions (#3826 @danreeves)no-is-mounted : fix logic in method name check ( #3821 @Mathias-S )
no-is-mounted: fix logic in method name check (#3821 @Mathias-S)jsx-no-literals: Avoid crashing on valueless boolean props (#3823 @reosarevok)no-string-refs : allow this.refs in > 18.3.0 ( #3807 @henryqdineen )
no-string-refs: allow this.refs in > 18.3.0 (#3807 @henryqdineen)jsx-no-literals Add elementOverrides option and the ability to ignore this rule on specific elements (#3812 @Pearce-Ropion)forward-ref-uses-ref: add rule for checking ref parameter is added ([#3667][] @NotWoods)function-component-definition, boolean-prop-naming, jsx-first-prop-new-line, jsx-props-no-multi-spaces, propTypes: use type args (#3629 @HenryBrown0)jsx-props-no-spreading: add explicitSpread option to schema (#3799 @ljharb)no-danger: update broken link (#3817 @lucasrmendonca)button-has-type: add test case with spread (#3731 @y-hsgw)no-string-refs]: allow this.refs in > 18.3.0 (#3807 @henryqdineen)jsx-no-literals] Add elementOverrides option and the ability to ignore this rule on specific elements (#3812 @Pearce-Ropion)forward-ref-uses-ref]: add rule for checking ref parameter is added ([#3667][] @NotWoods)function-component-definition], [boolean-prop-naming], [jsx-first-prop-new-line], [jsx-props-no-multi-spaces], propTypes: use type args (#3629 @HenryBrown0)jsx-props-no-spreading]: add explicitSpread option to schema (#3799 @ljharb)no-danger]: update broken link (#3817 @lucasrmendonca)button-has-type: add test case with spread (#3731 @y-hsgw)jsx-curly-brace-presence : avoid autofixing attributes with double quotes to a double quoted attribute ( #3814 @ljharb )
jsx-curly-brace-presence: avoid autofixing attributes with double quotes to a double quoted attribute (#3814 @ljharb)jsx-curly-brace-presence]: avoid autofixing attributes with double quotes to a double quoted attribute (#3814 @ljharb)jsx-curly-brace-presence : do not trigger on strings containing a quote character ( #3798 @akulsr0 )
jsx-curly-brace-presence: do not trigger on strings containing a quote character (#3798 @akulsr0)jsx-curly-brace-presence]: do not trigger on strings containing a quote character (#3798 @akulsr0)support eslint v9 ([#3759][] @mdjermanovic)
jsx-props-no-spread-multi (#3724 @SimonSchick)forbid-component-props: add propNamePattern to allow / disallow prop name patterns (#3774 @akulsr0)jsx-handler-names: support ignoring component names (#3772 @akulsr0)jsx-closing-tag-location: add line-aligned option (#3777 @kimtaejin3)no-danger: add customComponentNames option (#3748 @akulsr0)no-invalid-html-attribute: substitute placeholders in suggestion messages (#3759 @mdjermanovic)sort-prop-types: single line type ending without semicolon (#3784 @akulsr0)require-default-props: report when required props have default value (#3785 @akulsr0)variableUtil: Avoid creating a single flat variable scope for each lookup (#3782 @DanielRosenwasser)jsx-props-no-spread-multi] (#3724 @SimonSchick)forbid-component-props]: add propNamePattern to allow / disallow prop name patterns (#3774 @akulsr0)jsx-handler-names]: support ignoring component names (#3772 @akulsr0)jsx-closing-tag-location]: add line-aligned option (#3777 @kimtaejin3)no-danger]: add customComponentNames option (#3748 @akulsr0)no-invalid-html-attribute]: substitute placeholders in suggestion messages (#3759 @mdjermanovic)sort-prop-types]: single line type ending without semicolon (#3784 @akulsr0)require-default-props]: report when required props have default value (#3785 @akulsr0)variableUtil: Avoid creating a single flat variable scope for each lookup (#3782 @DanielRosenwasser)[prop-types]: fix className missing in prop validation false negative ([#3749] @akulsr0)
prop-types: fix className missing in prop validation false negative (#3749 @akulsr0)sort-prop-types: Check for undefined before accessing node.typeAnnotation.typeAnnotation (#3779 @tylerlaprade)[prop-types]: null-check rootNode before calling getScope ([#3762][] @crnhrv)
prop-types: null-check rootNode before calling getScope (#3762 @crnhrv)boolean-prop-naming: avoid a crash with a spread prop (#3733 @ljharb)jsx-boolean-value: assumeUndefinedIsFalse with never must not allow explicit true value (#3757 @6uliver)no-object-type-as-default-prop: enable rule for components with many parameters (#3768 @JulienR1)jsx-key: incorrect behavior for checkKeyMustBeforeSpread with map callbacks (#3769 @akulsr0)prop-types]: null-check rootNode before calling getScope (#3762 @crnhrv)boolean-prop-naming]: avoid a crash with a spread prop (#3733 @ljharb)jsx-boolean-value]: assumeUndefinedIsFalse with never must not allow explicit true value (#3757 @6uliver)no-object-type-as-default-prop]: enable rule for components with many parameters (#3768 @JulienR1)jsx-key]: incorrect behavior for checkKeyMustBeforeSpread with map callbacks (#3769 @akulsr0)[Refactor] create various eslint utils to fix eslint deprecations ([#3759][] @mdjermanovic, @ljharb)
boolean-prop-naming: avoid a crash with a non-TSTypeReference type (#3718 @developer-bandi)jsx-no-leaked-render: invalid report if left side is boolean (#3746 @akulsr0)jsx-closing-bracket-location: message shows {{details}} when there are no details (#3759 @mdjermanovic)no-invalid-html-attribute: ensure error messages are correct (#3759 @mdjermanovic, @ljharb)[jsx-no-leaked-render]: prevent wrongly adding parens ([#3700][] @developer-bandi)
jsx-no-leaked-render: prevent wrongly adding parens (#3700 @developer-bandi)boolean-prop-naming: detect TS interfaces (#3701 @developer-bandi)boolean-prop-naming: literalType error fix (#3704 @developer-bandi)boolean-prop-naming: allow TSIntersectionType (#3705 @developer-bandi)no-unknown-property: support popover, popovertarget, popovertargetaction attributes (#3707 @ljharb)no-unknown-property: only match data-* attributes containing - (#3713 @silverwind)checked-requires-onchange-or-readonly: correct options that were behaving opposite (#3715 @jaesoekjjang)boolean-prop-naming: improve error message (@ljharb)jsx-no-leaked-render]: prevent wrongly adding parens (#3700 @developer-bandi)boolean-prop-naming]: detect TS interfaces (#3701 @developer-bandi)boolean-prop-naming]: literalType error fix (#3704 @developer-bandi)boolean-prop-naming]: allow TSIntersectionType (#3705 @developer-bandi)no-unknown-property]: support popover, popovertarget, popovertargetaction attributes (#3707 @ljharb)no-unknown-property]: only match data-* attributes containing - (#3713 @silverwind)checked-requires-onchange-or-readonly]: correct options that were behaving opposite (#3715 @jaesoekjjang)boolean-prop-naming]: avoid a crash with a non-TSTypeReference type ([#3718][] @developer-bandi)boolean-prop-naming]: improve error message (@ljharb)[sort-prop-types]: give errors on TS types ([#3615][] @akulsr0)
sort-prop-types: give errors on TS types (#3615 @akulsr0)no-invalid-html-attribute: add support for apple-touch-startup-image rel attributes in link tags (#3638 @thomashockaday)no-unknown-property: add requireDataLowercase option (#3645 @HermanBilous)no-unknown-property: add displaystyle on <math> (#3652 @lounsbrough)prefer-read-only-props, prop-types, component detection: allow components to be async functions (#3654 @pnodet)no-unknown-property: support onResize on audio/video tags (#3662 @caesar1030)jsx-wrap-multilines: add never option to prohibit wrapping parens on multiline JSX (#3668 @reedws)jsx-filename-extension: add ignoreFilesWithoutCode option to allow empty files (#3674 @burtek)jsx-boolean-value: add assumeUndefinedIsFalse option (#3675 @developer-bandi)linkAttribute setting, jsx-no-target-blank: support multiple properties (#3673 @burtek)jsx-no-script-url: add includeFromSettings option to support linkAttributes setting (#3673 @burtek)jsx-one-expression-per-line: add non-jsx option to allow non-JSX children in one line (#3677 @burtek)checked-requires-onchange-or-readonly rule (#3680 @jaesoekjjang)jsx-no-leaked-render: preserve RHS parens for multiline jsx elements while fixing (#3623 @akulsr0)jsx-key: detect conditional returns (#3630 @yialo)jsx-newline: prevent a crash when allowMultilines (#3633 @ljharb)no-unknown-property: use a better regex to avoid a crash (#3666 @ljharb @SCH227)prop-types: handle nested forwardRef + memo (#3679 @developer-bandi)no-unknown-property: add fetchPriority (#3697 @SevereCloud)forbid-elements: prevent a crash on createElement() (#3632 @ljharb)jsx-boolean-value: make error messages clearer (#3691 @developer-bandi)propTypes: extract type params to var (#3634 @HenryBrown0)boolean-prop-naming: invert if statement (#3634 @HenryBrown0)function-component-definition: exit early if no type params (#3634 @HenryBrown0)jsx-props-no-multi-spaces: extract type parameters to var (#3634 @HenryBrown0)jsx-key: fix correct example (#3656 @developer-bandi)jsx-wrap-multilines: passing tests (#3545 @burtek)iframe-missing-sandbox: fix link to iframe attribute on mdn (#3690 @nnmrts)hook-use-state: fix an undefined variable (#3626 @chentsulin)[no-deprecated]: prevent false positive on commonjs import ([#3614][] @akulsr0)
no-deprecated: prevent false positive on commonjs import (#3614 @akulsr0)no-unsafe: report on the method instead of the entire component (@ljharb)no-deprecated: report on the destructured property instead of the entire variable declarator (@ljharb)no-deprecated: report on the imported specifier instead of the entire import statement (@ljharb)no-invalid-html-attribute: report more granularly (@ljharb)[require-default-props]: fix config schema ([#3605][] @controversial)
require-default-props: fix config schema (#3605 @controversial)jsx-curly-brace-presence: Revert #3538 due to issues with intended string type casting usage (#3611 @taozhou-glean)sort-prop-types: ensure sort-prop-types respects noSortAlphabetically (#3610 @caesar1030)[no-deprecated]: add React 18 deprecations ([#3548][] @sergei-startsev)
display-name: add checkContextObjects option (#3529 @JulesBlm)jsx-first-prop-new-line: add multiprop option (#3533 @haydncomley)no-deprecated: add React 18 deprecations (#3548 @sergei-startsev)forbid-component-props: add disallowedFor option (#3417 @jacketwpbb)no-array-index-key: consider flatMap (#3530 @k-yle)jsx-curly-brace-presence: handle single and only expression template literals (#3538 @taozhou-glean)no-unknown-property: allow onLoad on source (@ljharb)jsx-first-prop-new-line: ensure autofix preserves generics in component name (#3546 @ljharb)no-unknown-property: allow fill prop on <symbol> (#3555 @stefanprobst)display-name, prop-types: when checking for a capitalized name, ignore underscores entirely (#3560 @ljharb)no-unused-state: avoid crashing on a class field function with destructured state (#3568 @ljharb)no-unused-prop-types: allow using spread with object expression in jsx (#3570 @akulsr0)destructuring-assignment: Handle destructuring of useContext in SFC" (#3583 #2797 @102)prefer-read-only-props: add TS support (#3593 @HenryBrown0)jsx-newline, no-unsafe, static-property-placement: Fix code syntax highlighting (#3563 @nbsp1221)jsx-no-bind: reword performance rationale (#3581 @gpoole)jsx-first-prop-new-line: add missing multiprop value (#3598 @dzek69)display-name]: add checkContextObjects option (#3529 @JulesBlm)jsx-first-prop-new-line]: add multiprop option (#3533 @haydncomley)no-deprecated]: add React 18 deprecations (#3548 @sergei-startsev)forbid-component-props]: add disallowedFor option (#3417 @jacketwpbb)no-array-index-key]: consider flatMap (#3530 @k-yle)jsx-curly-brace-presence]: handle single and only expression template literals (#3538 @taozhou-glean)no-unknown-property]: allow onLoad on source (@ljharb)jsx-first-prop-new-line]: ensure autofix preserves generics in component name (#3546 @ljharb)no-unknown-property]: allow fill prop on <symbol> (#3555 @stefanprobst)display-name], [prop-types]: when checking for a capitalized name, ignore underscores entirely (#3560 @ljharb)no-unused-state]: avoid crashing on a class field function with destructured state (#3568 @ljharb)no-unused-prop-types]: allow using spread with object expression in jsx (#3570 @akulsr0)destructuring-assignment]: Handle destructuring of useContext in SFC" (#3583 [#2797][] @102)prefer-read-only-props]: add TS support (#3593 @HenryBrown0)jsx-newline], [no-unsafe], [static-property-placement]: Fix code syntax highlighting (#3563 @nbsp1221)jsx-no-bind]: reword performance rationale (#3581 @gpoole)jsx-first-prop-new-line]: add missing multiprop value (#3598 @dzek69)configs: restore parserOptions in legacy configs ([#3523][] @ljharb)
parserOptions in legacy configs ([#3523][] @ljharb)jsx-no-constructed-context-values, jsx-no-useless-fragment: add a rule schema (@ljharb)
( no-unknown-property: add fill for <marker> (#3525 @alexey-koran)parserOptions in legacy configs ([#3523][] @ljharb)jsx-no-constructed-context-values], [jsx-no-useless-fragment]: add a rule schema (@ljharb)
( [no-unknown-property]: add fill for <marker> (#3525 @alexey-koran)prevent circular dependency in index and "all" config ([#3519][] @ljharb)
destructuring-assignment: do not force destructuring of optionally chained properties (#3520 @ljharb)add [sort-default-props] and deprecate [jsx-sort-default-props] ([#1861][] @alexzherdev)
hook-use-state: add allowDestructuredState option (#3449 @ljharb)sort-default-props and deprecate jsx-sort-default-props (#1861 @alexzherdev)no-object-type-as-default-prop rule (#2848 @cyan33 @fengkx)sort-prop-types: restore autofixing (#3452, #3471 @ROSSROSALES)no-unknown-property: do not check fbs elements (#3494 @brianogilvie)jsx-newline: No newline between comments and jsx elements (#3493 @justmejulian)jsx-no-leaked-render: Don't report errors on empty strings if React >= v18 (#3488 @himanshu007-creator)no-invalid-html-attribute: convert autofix to suggestion (#3474 @himanshu007-creator @ljharb)jsx-no-leaked-render: fix removing parentheses for conditionals (#3502 @akulsr0)jsx-no-leaked-render: invalid fixes in coerce mode (#3511 @akulsr0)destructuring-assignment: Handle destructuring of useContext in SFC (#2797 @Zinyon @ljharb)jsx-no-leaked-render: Remove mentions of empty strings for React 18 (#3468 @karlhorky)eslint-doc-generator to v1.0.0 (#3499 @bmish)prefer-exact-props: fix example flow syntax (#3510 @smackfu)anyOf instead of oneOf (@ljharb @remcohaszing)hook-use-state]: add allowDestructuredState option (#3449 @ljharb)sort-default-props] and deprecate [jsx-sort-default-props] (#1861 @alexzherdev)no-object-type-as-default-prop] rule (#2848 @cyan33 @fengkx)sort-prop-types]: restore autofixing (#3452, #3471 @ROSSROSALES)no-unknown-property]: do not check fbs elements (#3494 @brianogilvie)jsx-newline]: No newline between comments and jsx elements (#3493 @justmejulian)jsx-no-leaked-render]: Don't report errors on empty strings if React >= v18 (#3488 @himanshu007-creator)no-invalid-html-attribute]: convert autofix to suggestion (#3474 @himanshu007-creator @ljharb)jsx-no-leaked-render]: fix removing parentheses for conditionals (#3502 @akulsr0)jsx-no-leaked-render]: invalid fixes in coerce mode (#3511 @akulsr0)destructuring-assignment]: Handle destructuring of useContext in SFC (#2797 @Zinyon @ljharb)jsx-no-leaked-render]: Remove mentions of empty strings for React 18 (#3468 @karlhorky)eslint-doc-generator to v1.0.0 (#3499 @bmish)prefer-exact-props]: fix example flow syntax (#3510 @smackfu)anyOf instead of oneOf (@ljharb @remcohaszing)[jsx-no-target-blank]: allow ternaries with literals ([#3464][] @akulsr0)
jsx-no-target-blank: allow ternaries with literals (#3464 @akulsr0)no-unknown-property: add inert attribute (#3484 @ljharb)jsx-key: detect keys in logical expression and conditional expression (#3490 @metreniuk)forbid-component-props: inclusive language w/ allowlist (#3473 @AndersDJohnson)eslint-doc-generator (#3469 @bmish)jsx-no-target-blank]: allow ternaries with literals (#3464 @akulsr0)no-unknown-property]: add inert attribute (#3484 @ljharb)jsx-key]: detect keys in logical expression and conditional expression (#3490 @metreniuk)[no-unknown-property]: allow allowFullScreen on iframe ([#3455][] @almeidx)
no-unknown-property: allow allowFullScreen on iframe (#3455 @almeidx)no-unknown-property]: allow allowFullScreen on iframe (#3455 @almeidx)[no-unknown-property]: add dialog attributes ([#3436][] @ljharb)
no-unknown-property: add dialog attributes (#3436 @ljharb)no-arrow-function-lifecycle: when converting from an arrow, remove the semi and wrapping parens (#3337 @ljharb)jsx-key: Ignore elements inside React.Children.toArray() (#1591 @silvenon)jsx-no-constructed-context-values: fix false positive for usage in non-components (#3448 @golopot)static-property-placement: warn on nonstatic expected-statics (#2581 @ljharb)no-unknown-property: properly tag-restrict case-insensitive attributes (@ljharb)no-unknown-property: allow webkitDirectory on input, case-insensitive (#3454 @ljharb)no-unknown-property: fix typo in link (#3445 @denkristoffer)no-unstable-nested-components: Warn about memoized, nested components (#3444 @eps1lon)no-unknown-property]: add dialog attributes (#3436 @ljharb)no-arrow-function-lifecycle]: when converting from an arrow, remove the semi and wrapping parens (#3337 @ljharb)jsx-key]: Ignore elements inside React.Children.toArray() (#1591 @silvenon)jsx-no-constructed-context-values]: fix false positive for usage in non-components (#3448 @golopot)static-property-placement]: warn on nonstatic expected-statics (#2581 @ljharb)no-unknown-property]: properly tag-restrict case-insensitive attributes (@ljharb)no-unknown-property]: allow webkitDirectory on input, case-insensitive (#3454 @ljharb)[no-unknown-property]: add viewBox on marker ([#3416][] @ljharb)
no-unknown-property: add viewBox on marker (#3416 @ljharb)no-unknown-property: add noModule on script (#3414 @ljharb)no-unknown-property: allow onLoad on <object> (#3415 @OleksiiKachan)no-multi-comp: do not detect a function property returning only null as a component (#3412 @ljharb)no-unknown-property: allow abbr on <th> and <td> (#3419 @OleksiiKachan)no-unknown-property: add viewBox for pattern, symbol, view (#3424 @MNBuyskih)no-unknown-property: add align on all the tags that support it (#3425 @ljharb)no-unknown-property]: add viewBox on marker (#3416 @ljharb)no-unknown-property]: add noModule on script (#3414 @ljharb)no-unknown-property]: allow onLoad on <object> (#3415 @OleksiiKachan)no-multi-comp]: do not detect a function property returning only null as a component (#3412 @ljharb)no-unknown-property]: allow abbr on <th> and <td> (#3419 @OleksiiKachan)no-unknown-property]: add viewBox for pattern, symbol, view (#3424 @MNBuyskih)no-unknown-property]: add align on all the tags that support it (#3425 @ljharb)[no-unknown-property]: avoid warning on fbt nodes entirely ([#3391][] @ljharb)
no-unknown-property: avoid warning on fbt nodes entirely (#3391 @ljharb)no-unknown-property: add download property support for a and area (#3394 @HJain13)no-unknown-property: allow webkitAllowFullScreen and mozAllowFullScreen (#3396 @ljharb)no-unknown-property: controlsList, not controlList (#3397 @ljharb)no-unknown-property: add more capture event properties (#3402 @sjarva)no-unknown-property: Add more one word properties found in DefinitelyTyped's react/index.d.ts (#3402 @sjarva)no-unknown-property: Mark onLoad/onError as supported on iframes (#3398 @maiis, #3406 @akx)no-unknown-property: allow imageSrcSet and imageSizes attributes on <link> (#3407 @terrymun)no-unknown-property: add border; focusable on <svg> (#3404 #3404 @ljharb)no-unknown-property: React lowercases data- attrs (#3395 @ljharb)no-unknown-property: add valign on table components (#3389 @ljharb)no-unknown-property]: avoid warning on fbt nodes entirely (#3391 @ljharb)no-unknown-property]: add download property support for a and area (#3394 @HJain13)no-unknown-property]: allow webkitAllowFullScreen and mozAllowFullScreen (#3396 @ljharb)no-unknown-property]: controlsList, not controlList (#3397 @ljharb)no-unknown-property]: add more capture event properties (#3402 @sjarva)no-unknown-property]: Add more one word properties found in DefinitelyTyped's react/index.d.ts (#3402 @sjarva)no-unknown-property]: Mark onLoad/onError as supported on iframes (#3398 @maiis, #3406 @akx)no-unknown-property]: allow imageSrcSet and imageSizes attributes on <link> (#3407 @terrymun)no-unknown-property]: add border; focusable on <svg> (#3404 #3404 @ljharb)no-unknown-property]: React lowercases data- attrs (#3395 @ljharb)no-unknown-property]: add valign on table components (#3389 @ljharb)[no-unknown-property]: onError and onLoad both work on img and script ([#3388][] @ljharb)
no-unknown-property: onError and onLoad both work on img and script (#3388 @ljharb)no-unknown-property: data-* attributes can have numbers (#3390 @sjarva)no-unknown-property: add more audio/video attributes (#3390 @sjarva)no-unknown-property: move allowfullscreen to case ignored attributes (#3390 @sjarva)no-unknown-property: fill works on line, mask, and use elements (#3390 @sjarva)no-unknown-property: add onMouseMoveCapture as valid react-specific attribute (#3390 @sjarva)no-unknown-property: make onLoad and onError be accepted on more elements (#3390 @sjarva)no-unknown-property: add a mention about using ignores properties with libraries that add props (#3390 @sjarva)[no-unknown-property]: add properties onToggle, fill, as, and pointer events ([#3385][] @sjarva)
no-unknown-property: add properties onToggle, fill, as, and pointer events (#3385 @sjarva)no-unknown-property: add defaultChecked property (#3385 @sjarva)no-unknown-property: add touch and media event related properties (#3385 @sjarva)no-unknown-property: children is always an acceptable prop; iframes have scrolling; video has playsInline (#3385 @ljharb)[no-unknown-property]: support checked on inputs ([#3383][] @ljharb)
no-unknown-property: support checked on inputs (#3383 @ljharb)no-unknown-property]: support checked on inputs (#3383 @ljharb)[no-unknown-property]: add SVG and meta properties ([#3381][] @AhmadMayo)
no-unknown-property: add SVG and meta properties (#3381 @AhmadMayo)no-unknown-property]: add SVG and meta properties (#3381 @AhmadMayo)[jsx-key]: avoid a crash with optional chaining ([#3371][] @ljharb)
jsx-key: avoid a crash with optional chaining (#3371 @ljharb)jsx-sort-props: avoid a crash with spread props (#3376 @ljharb)no-unknown-property: properly recognize valid data- and aria- attributes (#3377 @sjarva)no-unknown-property: properly recognize unknown HTML/DOM attributes (#3377 @sjarva)jsx-sort-props: replace ref string with ref variable (#3375 @Luccasoli)no-unknown-property: improve jsdoc; extract logic to separate functions (#3377 @sjarva)no-unknown-property: update DOM properties to include also one word properties (#3377 @sjarva)[jsx-key]: fix detecting missing key in Array.from's mapping function ([#3369][] @sjarva)
jsx-key: fix detecting missing key in Array.from's mapping function (#3369 @sjarva)jsx-no-leaked-render: coerce strategy now allows a ternary (#3370, @sjarva)[Docs] Standardize deprecated rule notice ([#3364][] @bmish)
jsx-newline: add allowMultiline option when prevent option is true (#3311 @TildaDares)forbid-dom-props: add disallowedFor option (#3338 @TildaDares)jsx-no-literals: properly error on children with noAttributeStrings: true (#3317 @TildaDares)jsx-key: catch key errors inside conditional statements (#3320 @TildaDares)display-name: Accept forwardRef and Memo nesting in newer React versions (#3321 @TildaDares)jsx-key: avoid a crash from optional chaining from #3320 (#3327 @ljharb)jsx-key: avoid a crash on a non-array node.body from #3320 (#3328 @ljharb)display-name: fix false positive for assignment of function returning null (#3331 @apbarrero)display-name: fix identifying _ as a capital letter (#3335 @apbarrero)require-default-props: avoid a crash when function has no props param (#3350 @noahnu)display-name, component detection: fix HOF returning null as Components (#3347 @jxm-math)forbid-prop-types: Ignore objects that are not of type React.PropTypes (#3326 @TildaDares)display-name, component detection: fix false positive for HOF returning only nulls and literals (#3305 @golopot)jsx-no-target-blank: False negative when rel attribute is assigned using ConditionalExpression (#3332 @V2dha)jsx-no-leaked-render: autofix nested "&&" logical expressions (#3353 @hduprat)jsx-sort-props: sorted attributes now respect comments (#3358 @ROSSROSALES)jsx-indent-props: improved readability of the checkNodesIndent function (#3315 @caroline223)jsx-indent, jsx-one-expression-per-line: add passing test cases (#3314 @ROSSROSALES)boolean-prop-naming, jsx-indent: avoid assigning to arguments (#3316 @caroline223)sort-comp: add class component examples (#3339 @maurer2)jsx-no-useless-fragment: add more examples of correct code (#3349 @karlhorky)jsx-boolean-value: add jsdoc types for helper functions (#3344 @caroline223)jsx-closing-bracket-location, jsx-no-bind: fix eslint issues (#3351 @caroline223)function-component-definition: add passing test cases (#3355 @TildaDares)jsx-no-target-blank: Fix link to link-type-noreferrer (#3319 @Luccasoli)jsx-newline]: add allowMultiline option when prevent option is true (#3311 @TildaDares)forbid-dom-props]: add disallowedFor option (#3338 @TildaDares)jsx-no-literals]: properly error on children with noAttributeStrings: true (#3317 @TildaDares)jsx-key]: catch key errors inside conditional statements (#3320 @TildaDares)display-name]: Accept forwardRef and Memo nesting in newer React versions (#3321 @TildaDares)jsx-key]: avoid a crash from optional chaining from #3320 (#3327 @ljharb)jsx-key]: avoid a crash on a non-array node.body from #3320 (#3328 @ljharb)display-name]: fix false positive for assignment of function returning null (#3331 @apbarrero)display-name]: fix identifying _ as a capital letter (#3335 @apbarrero)require-default-props]: avoid a crash when function has no props param (#3350 @noahnu)display-name], component detection: fix HOF returning null as Components (#3347 @jxm-math)forbid-prop-types]: Ignore objects that are not of type React.PropTypes (#3326 @TildaDares)display-name], component detection: fix false positive for HOF returning only nulls and literals (#3305 @golopot)jsx-no-target-blank]: False negative when rel attribute is assigned using ConditionalExpression (#3332 @V2dha)jsx-no-leaked-render]: autofix nested "&&" logical expressions (#3353 @hduprat)jsx-sort-props]: sorted attributes now respect comments (#3358 @ROSSROSALES)jsx-indent-props]: improved readability of the checkNodesIndent function (#3315 @caroline223)jsx-indent], [jsx-one-expression-per-line]: add passing test cases (#3314 @ROSSROSALES)boolean-prop-naming, jsx-indent: avoid assigning to arguments (#3316 @caroline223)sort-comp]: add class component examples (#3339 @maurer2)jsx-no-useless-fragment]: add more examples of correct code (#3349 @karlhorky)jsx-boolean-value]: add jsdoc types for helper functions (#3344 @caroline223)jsx-closing-bracket-location], [jsx-no-bind]: fix eslint issues (#3351 @caroline223)function-component-definition]: add passing test cases (#3355 @TildaDares)jsx-no-target-blank]: Fix link to link-type-noreferrer (#3319 @Luccasoli)Nothing published for this version
[display-name]: fix false positive for HOF returning only nulls ([#3291][] @golopot)
display-name: fix false positive for HOF returning only nulls (#3291 @golopot)jsx-no-leaked-render: avoid unnecessary negation operators and ternary branches deletion (#3299 @Belco90)display-name: fix false positive when using memo (#3304 @golopot)jsx-tag-spacing: rename option from #3264 (#3294 @ljharb)jsx-key: split the examples (#3293 @ioggstream)[Refactor] [no-deprecated]: improve performance ([#3271][] @golopot)
destructuring-assignment: add option destructureInSignature (#3235 @golopot)no-unknown-property: Allow crossOrigin on image tag (SVG) (#3251 @zpao)jsx-tag-spacing: Add multiline-always option (#3260, #3264 @Nokel81)function-component-definition: replace var by const in certain situations (#3248 @JohnBerd @SimeonC)jsx-no-leaked-render (#3203 @Belco90)require-default-props: add option functions (#3249 @nix6839)hook-use-state: Allow UPPERCASE setState setter prefixes (#3244 @duncanbeevers)propTypes: add VFC to react generic type param map (#3230 @dlech)no-unused-state: avoid a crash (#3258 @WillyLiaoWH @ljharb)jsx-no-useless-fragment: use proper apostrophe in error message (#3266 @develohpanda)propTypes: handle imported types/interface in forwardRef generic (#3280 @vedadeepta)button-has-type: fix exception for <button type> (#3255 @meowtec)no-unstable-nested-components: Improve error message and catch React.memo() (#3247 @zacharyliu)no-unused-prop-types: fix syntax errors (#3259 @mrdulin)no-deprecated: improve performance (#3271 @golopot)no-did-mount-set-state, no-did-update-set-state, no-will-update-set-state: improve performance (#3272 @golopot)Components.detect (#3273 @golopot)isParenthesized AST util (#3203 @Belco90)default-props-match-prop-types, require-default-props, sort-prop-types: fix typos (#3279 @nix6839)destructuring-assignment]: add option destructureInSignature (#3235 @golopot)no-unknown-property]: Allow crossOrigin on image tag (SVG) (#3251 @zpao)jsx-tag-spacing]: Add multiline-always option (#3260, #3264 @Nokel81)function-component-definition]: replace var by const in certain situations (#3248 @JohnBerd @SimeonC)jsx-no-leaked-render] (#3203 @Belco90)require-default-props]: add option functions (#3249 @nix6839)jsx-newline]: Add allowMultilines option ([#3311][] @TildaDares)hook-use-state]: Allow UPPERCASE setState setter prefixes (#3244 @duncanbeevers)propTypes: add VFC to react generic type param map (#3230 @dlech)no-unused-state]: avoid a crash (#3258 @WillyLiaoWH @ljharb)jsx-no-useless-fragment]: use proper apostrophe in error message (#3266 @develohpanda)propTypes: handle imported types/interface in forwardRef generic (#3280 @vedadeepta)button-has-type]: fix exception for <button type> (#3255 @meowtec)no-unstable-nested-components]: Improve error message and catch React.memo() (#3247 @zacharyliu)no-unused-prop-types]: fix syntax errors (#3259 @mrdulin)no-deprecated]: improve performance (#3271 @golopot)no-did-mount-set-state], [no-did-update-set-state], [no-will-update-set-state]: improve performance (#3272 @golopot)Components.detect (#3273 @golopot)isParenthesized AST util (#3203 @Belco90)default-props-match-prop-types, require-default-props, sort-prop-types: fix typos (#3279 @nix6839)[no-unused-state]: avoid a crash on a class field gDSFP ([#3236][] @ljharb)
no-unused-state: avoid a crash on a class field gDSFP (#3236 @ljharb)boolean-prop-naming: handle React.FC, intersection, union types (#3241 @ljharb)[no-unused-state]: avoid a crash on type-only gDSFP declarations ([#3225][] @ljharb)
no-unused-state: avoid a crash on type-only gDSFP declarations (#3225 @ljharb)jsx-curly-brace-presence: the string "never" defaults to propElementValues as ignore (#3228 @ljharb)propTypes: add VFC to react generic list (#3230 @ljharb)…[no-danger]: docs/rules/no-danger.md [no-deprecated]: docs/rules/no-deprecated.md [no-did-mount-set-state]: docs/rules/no-did-mount-set-state.md [no-d…
jsx-curly-brace-presence: avoid warning on curlies containing quote characters (#3214 @ljharb)jsx-indent: do not report on non-jsx-returning ternaries that contain null (#3222 @ljharb)jsx-indent: properly report on returned ternaries with jsx (#3222 @ljharb)no-array-index-key: detect named-imported cloneElement/createElement (#3213 @ljharb)…[no-danger]: docs/rules/no-danger.md [no-deprecated]: docs/rules/no-deprecated.md [no-did-mount-set-state]: docs/rules/no-did-mount-set-state.md [no-d…
add [hook-use-state] rule to enforce symmetric useState hook variable names ([#2921][] @duncanbeevers)
hook-use-state rule to enforce symmetric useState hook variable names (#2921 @duncanbeevers)jsx-no-target-blank: Improve fixer with option allowReferrer (#3167 @apepper)jsx-curly-brace-presence: add "propElementValues" config option (#3191 @ljharb)iframe-missing-sandbox rule (#2753 @tosmolka @ljharb)no-did-mount-set-state, no-did-update-set-state: no-op with react >= 16.3 (#1754 @ljharb)jsx-sort-props: support multiline prop groups (#3198 @duhamelgm)jsx-key: add warnDuplicates option to warn on duplicate jsx keys in an array (#2614 @ljharb)jsx-sort-props: add locale option (#3002 @ljharb)prop-types, propTypes: add support for exported type inference (#3163 @vedadeepta)no-invalid-html-attribute: allow 'shortcut icon' on link (#3174 @Primajin)prefer-exact-props improve performance for Identifier visitor (#3190 @meowtec)propTypes: Handle TSTypeReference in no-unused-prop-type (#3195 @niik)sort-prop-types: avoid repeated warnings of the same node/reason (#519 @ljharb)jsx-indent: Fix indent handling for closing parentheses (#620 @stefanbuck])prop-types/propTypes]: follow a returned identifier to see if it is JSX (#1046 @ljharb)no-unused-state: TS: support getDerivedStateFromProps as an arrow function (#2061 @ljharb)no-array-index-key: catch .toString and String() usage (#2813 @RedTn)function-component-definition: do not break on dollar signs (#3207 @ljharb)prefer-stateless-function: avoid a crash inside doctrine (#2596 @ljharb)prop-types: catch infinite loop (#2861 @ljharb)forbid-prop-types: properly report name in error message; check undestructured arguments (#2945 @ljharb)jsx-runtime] link from branch to sha (#3160 @tatsushitoji)jsx-no-target-blank: Improve readme (#3169 @apepper)display-name: improve examples (#3189 @golopot)no-invalid-html-attribute: sort HTML_ELEMENTS and messages (#3182 @Primajin)forbid-foreign-prop-types: document allowInPropTypes option (#1815 @ljharb)jsx-sort-default-props: remove unnecessary code (#1817 @ljharb)jsx-no-target-blank: fix syntax highlighting (#3199 @shamrin)jsx-key: improve example (#3202 @chnakamura)jsx-key: use more AST selectors (@ljharb)Full Changelog: https://github.com/yannickcr/eslint-plugin-react/compare/v7.28.0...v7.29.0
hook-use-state] rule to enforce symmetric useState hook variable names (#2921 @duncanbeevers)jsx-no-target-blank]: Improve fixer with option allowReferrer (#3167 @apepper)jsx-curly-brace-presence]: add "propElementValues" config option (#3191 @ljharb)iframe-missing-sandbox] rule (#2753 @tosmolka @ljharb)no-did-mount-set-state], [no-did-update-set-state]: no-op with react >= 16.3 (#1754 @ljharb)jsx-sort-props]: support multiline prop groups (#3198 @duhamelgm)jsx-key]: add warnDuplicates option to warn on duplicate jsx keys in an array (#2614 @ljharb)jsx-sort-props]: add locale option (#3002 @ljharb)prop-types], propTypes: add support for exported type inference (#3163 @vedadeepta)no-invalid-html-attribute]: allow 'shortcut icon' on link (#3174 @Primajin)prefer-exact-props] improve performance for Identifier visitor (#3190 @meowtec)propTypes: Handle TSTypeReference in no-unused-prop-type (#3195 @niik)sort-prop-types]: avoid repeated warnings of the same node/reason (#519 @ljharb)jsx-indent]: Fix indent handling for closing parentheses (#620 @stefanbuck])prop-types]/propTypes: follow a returned identifier to see if it is JSX (#1046 @ljharb)no-unused-state]: TS: support getDerivedStateFromProps as an arrow function (#2061 @ljharb)no-array-index-key]: catch .toString and String() usage (#2813 @RedTn)function-component-definition]: do not break on dollar signs (#3207 @ljharb)prefer-stateless-function]: avoid a crash inside doctrine (#2596 @ljharb)prop-types]: catch infinite loop (#2861 @ljharb)forbid-prop-types]: properly report name in error message; check undestructured arguments (#2945 @ljharb)jsx-runtime] link from branch to sha (#3160 @tatsushitoji)jsx-no-target-blank]: Improve readme (#3169 @apepper)display-name]: improve examples (#3189 @golopot)no-invalid-html-attribute]: sort HTML_ELEMENTS and messages (#3182 @Primajin)forbid-foreign-prop-types]: document allowInPropTypes option (#1815 @ljharb)jsx-sort-default-props]: remove unnecessary code (#1817 @ljharb)jsx-no-target-blank]: fix syntax highlighting (#3199 @shamrin)jsx-key]: improve example (#3202 @chnakamura)jsx-key]: use more AST selectors (@ljharb)[New] component detection: track React imports by @duncanbeevers in [#3149][]
function-component-definition: support namedComponents option being an array by @petersendidit in #3129jsx-indent-props: Reset line.isUsingOperator correctly after ternary (#3146) by @tobiaswaltl in #3157util.isReactHookCall by @duncanbeevers in #3156Full Changelog: https://github.com/yannickcr/eslint-plugin-react/compare/v7.27.1...v7.28.0
function-component-definition]: support namedComponents option being an array (#3129 @petersendidit)jsx-indent-props]: Reset line.isUsingOperator correctly after ternary (#3146 @tobiaswaltl)no-arrow-function-lifecycle], [no-unused-class-component-methods]: use report/messages convention (@ljharb)util.isReactHookCall (#3156 @duncanbeevers)[Fix] no-unused-class-component-methods: add getChildContext lifecycle method by @yoyo837 in https://github.com/yannickcr/eslint-plugin-react/pull/313
no-unused-class-component-methods: add getChildContext lifecycle method by @yoyo837 in https://github.com/yannickcr/eslint-plugin-react/pull/3136prop-types: fix false positives on renames in object destructuring by @golopot in https://github.com/yannickcr/eslint-plugin-react/pull/3142Full Changelog: https://github.com/yannickcr/eslint-plugin-react/compare/v7.27.0...v7.27.1
no-invalid-html-attribute]: allow link rel to have apple-touch-icon, mask-icon (#3132 @ljharb)no-unused-class-component-methods]: add getChildContext lifecycle method (#3136 @yoyo837)prop-types]: fix false positives on renames in object destructuring (#3142 @golopot)no-arrow-function-lifecycle]: fix invalid autofix from a concise arrow method to a regular one (#3145 @ljharb)display-name]: avoid false positives on non-creatClass object expressions (#3144 @ljharb)[New] add no-unused-class-component-methods by @pawelnvk in https://github.com/yannickcr/eslint-plugin-react/pull/2239
no-unused-class-component-methods by @pawelnvk in https://github.com/yannickcr/eslint-plugin-react/pull/2239no-arrow-function-lifecycle rule by @ngtan in https://github.com/yannickcr/eslint-plugin-react/pull/1980propTypes: add VoidFunctionComponent to react generic list by @vedadeepta in https://github.com/yannickcr/eslint-plugin-react/pull/3092no-arrow-function-lifecycle: prevent crashing on ClassProperty by @AriPerkkio in https://github.com/yannickcr/eslint-plugin-react/pull/3098eslint-plugin-eslint-plugin to v4 by @bmish in https://github.com/yannickcr/eslint-plugin-react/pull/3105display-name: unwrap TS as expressions by @ljharb in https://github.com/yannickcr/eslint-plugin-react/pull/3110no-unstable-components: improve handling of objects containing render functions by @fizwidget in https://github.com/yannickcr/eslint-plugin-react/pull/3111prop-types, propTypes: add forwardRef<>, ForwardRefRenderFunction<> prop-types by @vedadeepta in https://github.com/yannickcr/eslint-plugin-react/pull/3112eslint-remote-tester by @AriPerkkio in https://github.com/yannickcr/eslint-plugin-react/pull/3118no-invalid-html-attribute rule by @Nokel81 in https://github.com/yannickcr/eslint-plugin-react/pull/2863eslint-remote-tester-run-action by @AriPerkkio in https://github.com/yannickcr/eslint-plugin-react/pull/3120destructuring-assignment, component detection: improve component detection by @vedadeepta in https://github.com/yannickcr/eslint-plugin-react/pull/3122jsx-no-target-blank: adjust options description by @gebsh in https://github.com/yannickcr/eslint-plugin-react/pull/3124Full Changelog: https://github.com/yannickcr/eslint-plugin-react/compare/v7.26.1...v7.27.0
no-unused-class-component-methods]: Handle unused class component methods (#2166 @jakeleventhal @pawelnvk)no-arrow-function-lifecycle] (#1980 @ngtan)@typescript-eslint/parser v5 (@ljharb)no-invalid-html-attribute]: add rule (#2863 @Nokel81)propTypes: add VoidFunctionComponent to react generic list (#3092 @vedadeepta)jsx-fragments], [jsx-no-useless-fragment]: avoid a crash on fragment syntax in typescript-eslint parser (@ljharb)jsx-props-no-multi-spaces]: avoid a crash on long member chains in tag names in typescript-eslint parser (@ljharb)no-unused-prop-types], usedPropTypes: avoid crash with typescript-eslint parser (@ljharb)display-name]: unwrap TS as expressions (#3110 @ljharb)destructuring-assignment]: detect refs nested in functions (#3102 @ljharb)no-unstable-components]: improve handling of objects containing render function properties (#3111 @fizwidget)prop-types], propTypes: add forwardRef<>, ForwardRefRenderFunction<> prop-types (#3112 @vedadeepta)no-typos]: prevent a crash when using private methods (@ljharb)destructuring-assignment], component detection: improve component detection (#3122 @vedadeepta)no-invalid-html-attribute]: avoid crash on spread props (#3126 @ljharb)Pin link to code in react-in-jsx-scope docs by @lencioni in https://github.com/yannickcr/eslint-plugin-react/pull/3081
jsx-max-props-per-line: fix options example by @MrRaiter in https://github.com/yannickcr/eslint-plugin-react/pull/3083jsx-no-target-blank: improve error messages by @cutiful in https://github.com/yannickcr/eslint-plugin-react/pull/3088Full Changelog: https://github.com/yannickcr/eslint-plugin-react/compare/v7.26.0...v7.26.1
no-namespace]: fix crash on non-string React.createElement name (#3082 @ljharb)no-namespace]: avoid crash on non-string createElement values (#3085 @ljharb)jsx-no-target-blank]: improve error messages (#3088 @cutiful)jsx-max-props-per-line]: fix options example (#3083 @MrRaiter)…[no-danger]: docs/rules/no-danger.md [no-deprecated]: docs/rules/no-deprecated.md [no-did-mount-set-state]: docs/rules/no-did-mount-set-state.md [no-d…
no-namespace rule (#2640 @yacinehmito @ljharb)jsx-max-props-per-line: add single and multi options (#3078 @SIL0RAK)display-name: Get rid of false position on component detection (#2759 @iiison)no-access-state-in-setstate: passing test for “don't error if it's not a React Component” (#1873 @kentcdodds)[prop-types], propTypes: bail out unknown generic types inside func params ([#3076] @vedadeepta)
[jsx-no-useless-fragments]: Handle insignificant whitespace correctly when allowExpressions is true ([#3061][] @benj-dobs)
jsx-no-useless-fragments]: Handle insignificant whitespace correctly when allowExpressions is true (#3061 @benj-dobs)prop-types], propTypes: handle implicit children prop in react's generic types (#3064 @vedadeepta)display-name]: fix arrow function returning result of function call with JSX arguments being interpreted as component (#3065 @danielfinke)jsx-no-target-blank]: avoid crash on attr-only href (#3066 @ljharb @gaz77a)jsx-uses-vars]: ignore lowercase tag names (#3070 @alanorozco)[no-this-in-sfc], component detection: Improve stateless component detection ([#3056][] @Wesitos)
no-this-in-sfc], component detection: Improve stateless component detection (#3056 @Wesitos)[no-deprecated]: fix crash on rest elements ([#3016][] @ljharb)
jsx-no-useless-fragments]: add option to allow single expressions in fragments (#3006 @mattdarveniza)prefer-exact-props] rule (#1547 @jomasti)jsx-no-target-blank]: add forms option (#1617 @jaaberg)jsx-pascal-case]: add allowLeadingUnderscore option (#3039 @pangaeatech)no-children-prop]: Add allowFunctions option (#1903 @alexzherdev)jsx-runtime]: set parserOptions.jsxPragma for @typescript-eslint/parser (bb64df65 @ljharb)estraverse to improve component detection (#2992 @Wesitos)destructuring-assignment], [no-multi-comp], [no-unstable-nested-components], component detection: improve component detection (#3001 @vedadeepta)no-deprecated]: fix crash on rest elements (#3016 @ljharb)destructuring-assignment]: get the contextName correctly (#3025 @ohhoney1)no-typos]: prevent crash on styled components and forwardRefs (#3036 @ljharb)destructuring-assignment], component detection: handle default exports edge case (#3038 @vedadeepta)no-typos]: fix crash on private methods (#3043 @ljharb)jsx-no-bind]: handle local function declarations (#3048 @p7g)prop-types], propTypes: handle React.* TypeScript types (#3049 @vedadeepta)prop-types], propTypes: add handling for FC<Props>, improve tests (#3051 @vedadeepta)prop-types], propTypes: prevent crash introduced in #3051 (#3053 @ljharb)jsx-no-bind]: updates discussion of refs (#2998 @dimitropoulos)utils/Components: correct spelling and delete unused code (#3026 @ohhoney1)jsx-uses-react], [react-in-jsx-scope]: document [react/jsx-runtime] config (#3018 @pkuczynski @ljharb)require-default-props]: fix small typo (#2994 @evsasse)jsx-runtime config (#3052 @ljharb)component detection: add componentWrapperFunctions setting ([#2713][] @@jzabala @LandonSchropp)
no-unused-prop-types]: add ignore option (#2972 @grit96)jsx-handler-names]: properly substitute value into message (#2975 @G-Rath)jsx-uses-vars]: ignore namespaces (#2985 @remcohaszing)jsx-no-undef]: ignore namespaces (#2986 @remcohaszing)jsx-child-element-spacing]: Don't flag whitespace around <br/> tags (#2989 @pascalpp)jsx-newline]: Fix minor spelling error on rule name (#2974 @DennisSkoko)void-dom-elements-no-children]: improve performancejsx-child-element-spacing]: fixes sentence which ends abruptly (#2990 @pascalpp)[jsx-max-depth]: Prevent getting stuck in circular references ([#2957][] @AriPerkkio)
jsx-max-depth]: Prevent getting stuck in circular references (#2957 @AriPerkkio)jsx-no-target-blank]: fix handling of warnOnSpreadAttributes being false (#2953 @Nokel81)forbid-dom-props]: support JSXNamespacedName (#2961 @mrtnzlml)forbid-component-props]: support JSXNamespacedName (@ljharb)version detection: support processor virtual filename ([#2949][] @JounQin)
[jsx-no-target-blank]: add fixer ([#2862][] @Nokel81)
jsx-no-target-blank]: add fixer (#2862 @Nokel81)jsx-pascal-case]: support minimatch ignore option (#2906 @bcherny)jsx-pascal-case]: support allowNamespace option (#2917 @kev-y-huang)jsx-newline]: Add prevent option (#2935 @jsphstls)no-unstable-nested-components]: Prevent creating unstable components inside components (#2750 @AriPerkkio)jsx-runtime config, for the modern JSX runtime transform (@ljharb)jsx-no-constructed-context-values]: avoid a crash with as X TS code (#2894 @ljharb)jsx-no-constructed-context-values]: avoid a crash with boolean shorthand (#2895 @ljharb)static-property-placement]: do not report non-components (#2893 @golopot)no-array-index-key]: support optional chaining (#2897 @SyMind)no-typos]: avoid a crash on bindingless prop-types import; add warning (#2899 @ljharb)jsx-curly-brace-presence]: ignore containers with comments (#2900 @golopot)destructuring-assignment]: fix a false positive for local prop named context in SFC (#2929 @SyMind)jsx-no-target-blank]: Allow rel="noreferrer" when allowReferrer is true (#2925 @edemaine)boolean-prop-naming]: add check for typescript "boolean" type (#2930 @vedadeepta)jsx-curly-newline]: Update error messages (#2933 @jbrower2)[jsx-key]: added checkKeyMustBeforeSpread option for new jsx transform ([#2835][] @morlay)
jsx-key]: added checkKeyMustBeforeSpread option for new jsx transform (#2835 @morlay)jsx-newline]: add new rule (#2693 @jzabala)jsx-no-constructed-context-values]: add new rule which checks when the value passed to a Context Provider will cause needless rerenders (#2763 @dylanOshima)jsx-indent-props]: add ignoreTernaryOperator option (#2846 @SebastianZimmer)jsx-no-target-blank]: Add warnOnSpreadAttributes option (#2855 @michael-yx-wu)display-name]/component detection: avoid a crash on anonymous components (#2840 @ljharb)prop-types]: function in class that returns a component causes false warning in typescript (#2843 @SyMind)jsx-no-target-blank]: avoid a crash with a non-string literal (#2851 @ljharb)jsx-no-script-url]: avoid crash with boolean href (#2871 @ljharb, @AriPerkkio)no-typos]: avoid crash with computed method name (#2870 @ljharb, @AriPerkkio)jsx-max-depth]: avoid crash with childless jsx child (#2869 @ljharb, @AriPerkkio)jsx-wrap-multilines]: fix crash with declarations that are on a new line after = (#2875 @ljharb)no-unknown-property]: avoid crash with prop named with Object.prototype key (#2879 @ljharb, @AriPerkkio)prop-types]: default argument does not count as props-types declaration (#2877 @golopot)jsx-props-no-multi-spaces]: fix a false positive for beside comments (#2878 @golopot)jsx-no-undef]: handle the TS parser combined with an invalid ecmaVersion (#2882 @ljharb)no-unused-prop-types]: apply skipShapeProps to exact types (#2883 @golopot)no-danger-with-children]/[style-prop-object]/[no-adjacent-inline-elements]: add category, URL (#2891 @thofmann)[jsx-indent-props]: Apply indentation when using brackets ([#2826][] @Moong0122)
[no-unused-prop-types]: Silence false positive on never type in TS ([#2815][] @pcorpet)
no-unused-prop-types]: Silence false positive on never type in TS (#2815 @pcorpet)jsx-indent-props]: Apply indentation when operator is used in front of the upper line (#2808, #2820 @Moong0122)jsx-ast-utils (#2822 jsx-eslint/jsx-ast-utils#102 @ljharb)[prop-types]: fix Cannot read property 'type' of undefined error when destructured param ([#2807][] @minwe)
[prop-types]: handle RestElement in destructured param ([#2805][] @hank121314)
prop-types]: handle RestElement in destructured param (#2805 @hank121314)Your coding agent can read these notes before it upgrades. Set up the MCP server →