Update dependency eslint-plugin-react to v7.37.5 #16

Open
renovate wants to merge 1 commit from renovate/eslint-plugin-react-7.x-lockfile into main
Collaborator

This PR contains the following updates:

Package Change Age Confidence
eslint-plugin-react 7.28.0 → 7.37.5 age confidence

Release Notes

jsx-eslint/eslint-plugin-react (eslint-plugin-react)

v7.37.5

Compare Source

Fixed
Changed

v7.37.4

Compare Source

Fixed

v7.37.3

Compare Source

Fixed
Changed
  • [Tests] [jsx-no-script-url]: Improve tests (#​3849 @​radu2147)
  • [Docs] fix broken links: [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)

v7.37.2

Compare Source

Fixed
  • [destructuring-assignment]: fix false negative when using typeof props.a (#​3835 @​golopot)
Changed
  • [Refactor] [destructuring-assignment]: use getParentStatelessComponent (#​3835 @​golopot)

v7.37.1

Compare Source

Fixed
Changed

v7.37.0

Compare Source

Added
Changed

v7.36.1

Compare Source

Fixed

v7.36.0

Compare Source

Added
Fixed
  • [function-component-definition], [boolean-prop-naming], [jsx-first-prop-new-line], [jsx-props-no-multi-spaces], propTypes: use type args (#​3629 @​HenryBrown0)
  • JSX pragma: fail gracefully (#​3632 @​ljharb)
  • [jsx-props-no-spreading]: add explicitSpread option to schema (#​3799 @​ljharb)
Changed

v7.35.2

Compare Source

Fixed
  • [jsx-curly-brace-presence]: avoid autofixing attributes with double quotes to a double quoted attribute (#​3814 @​ljharb)

v7.35.1

Compare Source

Fixed
  • [jsx-curly-brace-presence]: do not trigger on strings containing a quote character (#​3798 @​akulsr0)

v7.35.0

Compare Source

Added
Fixed
Changed

v7.34.4

Compare Source

Fixed

v7.34.3

Compare Source

Fixed
  • [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)

v7.34.2

Compare Source

Fixed
Changed

v7.34.1

Compare Source

Fixed
Changed
  • [boolean-prop-naming]: improve error message (@​ljharb)

v7.34.0

Compare Source

Added
Fixed
Changed

v7.33.2

Compare Source

Fixed
  • [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)

v7.33.1

Compare Source

Fixed

v7.33.0

Compare Source

Added
Fixed
Changed

v7.32.2

Compare Source

Fixed

v7.32.1

Compare Source

Fixed
  • prevent circular dependency in index and "all" config (#​3519 @​ljharb)
  • [destructuring-assignment]: do not force destructuring of optionally chained properties (#​3520 @​ljharb)

v7.32.0

Compare Source

Added
Fixed
Changed

v7.31.11

Compare Source

Fixed
Changed

v7.31.10

Compare Source

Fixed

v7.31.9

Compare Source

Fixed
  • [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)
Changed

v7.31.8

Compare Source

Fixed
Changed

v7.31.7

Compare Source

Fixed

v7.31.6

Compare Source

Fixed
  • [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)
Changed
  • [Docs] [no-unknown-property]: add a mention about using ignores properties with libraries that add props (#​3390 @​sjarva)

v7.31.5

Compare Source

Fixed
  • [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)

v7.31.4

Compare Source

Fixed

v7.31.3

Compare Source

Fixed

v7.31.2

Compare Source

Fixed
Changed
  • [Docs] [jsx-sort-props]: replace ref string with ref variable (#​3375 @​Luccasoli)
  • [Refactor] [no-unknown-property]: improve jsdoc; extract logic to separate functions (#​3377 @​sjarva)
  • [Refactor] [no-unknown-property]: update DOM properties to include also one word properties (#​3377 @​sjarva)

v7.31.1

Compare Source

Fixed
Changed

v7.31.0

Compare Source

Added
Fixed
Changed

v7.30.2

Compare Source

v7.30.1

Compare Source

Fixed
Changed

v7.30.0

Compare Source

Added
Fixed
Changed

v7.29.4

Compare Source

Fixed

v7.29.3

Compare Source

Fixed

v7.29.2

Compare Source

Fixed
  • [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)

v7.29.1

Compare Source

Fixed

v7.29.0

Compare Source

Added
Fixed
Changed

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) | [`7.28.0` → `7.37.5`](https://renovatebot.com/diffs/npm/eslint-plugin-react/7.28.0/7.37.5) | ![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-react/7.37.5?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-react/7.28.0/7.37.5?slim=true) | --- ### Release Notes <details> <summary>jsx-eslint/eslint-plugin-react (eslint-plugin-react)</summary> ### [`v7.37.5`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7375---20250403) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.37.4...v7.37.5) ##### Fixed - \[`no-unknown-property`]: allow shadow root attrs on `<template>` ([#&#8203;3912][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`prop-types`]: support `ComponentPropsWithRef` from a namespace import ([#&#8203;3651][] [@&#8203;corydeppen](https://github.com/corydeppen)) - \[`jsx-no-constructed-context-values`]: detect constructed context values in React 19 `<Context>` usage ([#&#8203;3910][] [@&#8203;TildaDares](https://github.com/TildaDares)) - \[`no-unknown-property`]: allow `transform-origin` on `rect` ([#&#8203;3914][] [@&#8203;ljharb](https://github.com/ljharb)) ##### Changed - \[Docs] \[`button-has-type`]: clean up phrasing ([#&#8203;3909][] [@&#8203;hamirmahal](https://github.com/hamirmahal)) [7.37.5]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.37.4...v7.37.5 [#&#8203;3914]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3914 [#&#8203;3912]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3912 [#&#8203;3910]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3910 [#&#8203;3909]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3909 [#&#8203;3651]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3651 ### [`v7.37.4`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7374---20250112) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.37.3...v7.37.4) ##### Fixed - \[`no-unknown-property`]: support `onBeforeToggle`, `popoverTarget`, `popoverTargetAction` attributes ([#&#8203;3865][] [@&#8203;acusti](https://github.com/acusti)) - \[types] fix types of flat configs ([#&#8203;3874][] [@&#8203;ljharb](https://github.com/ljharb)) [7.37.4]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.37.3...v7.37.4 [#&#8203;3874]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3874 [#&#8203;3865]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3865 ### [`v7.37.3`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7373---20241223) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.37.2...v7.37.3) ##### Fixed - \[`no-danger`]: avoid a crash on a nested component name ([#&#8203;3833][] [@&#8203;ljharb](https://github.com/ljharb)) - \[Fix] types: correct generated type declaration ([#&#8203;3840][] [@&#8203;ocavue](https://github.com/ocavue)) - \[`no-unknown-property`]: support `precedence` prop in react 19 ([#&#8203;3829][] [@&#8203;acusti](https://github.com/acusti)) - \[`prop-types`]: props missing in validation when using generic types from a namespace import ([#&#8203;3859][] [@&#8203;rbondoc96](https://github.com/rbondoc96)) ##### Changed - \[Tests] \[`jsx-no-script-url`]: Improve tests ([#&#8203;3849][] [@&#8203;radu2147](https://github.com/radu2147)) - \[Docs] fix broken links: \[`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`] ([#&#8203;3841][] [@&#8203;bastiendmt](https://github.com/bastiendmt)) [7.37.3]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.37.2...v7.37.3 [#&#8203;3859]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3859 [#&#8203;3849]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3849 [#&#8203;3841]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3841 [#&#8203;3840]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3840 [#&#8203;3833]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3833 [#&#8203;3829]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3829 ### [`v7.37.2`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7372---20241022) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.37.1...v7.37.2) ##### Fixed - \[`destructuring-assignment`]: fix false negative when using `typeof props.a` ([#&#8203;3835][] [@&#8203;golopot](https://github.com/golopot)) ##### Changed - \[Refactor] \[`destructuring-assignment`]: use `getParentStatelessComponent` ([#&#8203;3835][] [@&#8203;golopot](https://github.com/golopot)) [7.37.2]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.37.1...v7.37.2 [#&#8203;3835]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3835 ### [`v7.37.1`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7371---20241001) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.37.0...v7.37.1) ##### Fixed - \[meta] do not npmignore `d.ts` files ([#&#8203;3836][] [@&#8203;ljharb](https://github.com/ljharb)) ##### Changed - \[readme] Fix shared settings link ([#&#8203;3834][] [@&#8203;MgenGlder](https://github.com/MgenGlder)) [7.37.1]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.37.0...v7.37.1 [#&#8203;3836]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3836 [#&#8203;3834]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3834 ### [`v7.37.0`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7370---20240926) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.36.1...v7.37.0) ##### Added - add type generation ([#&#8203;3830][] [@&#8203;voxpelli](https://github.com/voxpelli)) - \[`no-unescaped-entities`]: add suggestions ([#&#8203;3831][] [@&#8203;StyleShit](https://github.com/StyleShit)) - \[`forbid-component-props`]: add `allowedForPatterns`/`disallowedForPatterns` options ([#&#8203;3805][] [@&#8203;Efimenko](https://github.com/Efimenko)) - \[`no-unstable-nested-components`]: add `propNamePattern` to support custom render prop naming conventions ([#&#8203;3826][] [@&#8203;danreeves](https://github.com/danreeves)) ##### Changed - \[readme] flat config example for react 17+ ([#&#8203;3824][] [@&#8203;GabenGar](https://github.com/GabenGar)) [7.37.0]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.36.1...v7.37.0 [#&#8203;3831]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3831 [#&#8203;3830]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3830 [#&#8203;3826]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3826 [#&#8203;3824]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3824 [#&#8203;3805]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3805 ### [`v7.36.1`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7361---20240912) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.36.0...v7.36.1) ##### Fixed - \[`no-is-mounted`]: fix logic in method name check ([#&#8203;3821][] [@&#8203;Mathias-S](https://github.com/Mathias-S)) - \[`jsx-no-literals`]: Avoid crashing on valueless boolean props ([#&#8203;3823][] [@&#8203;reosarevok](https://github.com/reosarevok)) [7.36.1]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.36.0...v7.36.1 [#&#8203;3823]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3823 [#&#8203;3821]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3821 ### [`v7.36.0`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7360---20240912) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.35.2...v7.36.0) ##### Added - \[`no-string-refs`]: allow this.refs in > 18.3.0 ([#&#8203;3807][] [@&#8203;henryqdineen](https://github.com/henryqdineen)) - \[`jsx-no-literals`] Add `elementOverrides` option and the ability to ignore this rule on specific elements ([#&#8203;3812][] [@&#8203;Pearce-Ropion](https://github.com/Pearce-Ropion)) - \[`forward-ref-uses-ref`]: add rule for checking ref parameter is added (\[[#&#8203;3667](https://github.com/jsx-eslint/eslint-plugin-react/issues/3667)]\[] [@&#8203;NotWoods](https://github.com/NotWoods)) ##### Fixed - \[`function-component-definition`], \[`boolean-prop-naming`], \[`jsx-first-prop-new-line`], \[`jsx-props-no-multi-spaces`], `propTypes`: use type args ([#&#8203;3629][] [@&#8203;HenryBrown0](https://github.com/HenryBrown0)) - JSX pragma: fail gracefully ([#&#8203;3632][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`jsx-props-no-spreading`]: add `explicitSpread` option to schema ([#&#8203;3799][] [@&#8203;ljharb](https://github.com/ljharb)) ##### Changed - \[Tests] add [@&#8203;typescript-eslint/parser](https://github.com/typescript-eslint/parser) v6 ([#&#8203;3629][] [@&#8203;HenryBrown0](https://github.com/HenryBrown0)) - \[Tests] add [@&#8203;typescript-eslint/parser](https://github.com/typescript-eslint/parser) v7 and v8 ([#&#8203;3629][] [@&#8203;hampustagerud](https://github.com/hampustagerud)) - \[Docs] \[`no-danger`]: update broken link ([#&#8203;3817][] [@&#8203;lucasrmendonca](https://github.com/lucasrmendonca)) - \[types] add jsdoc type annotations ([#&#8203;3731][] [@&#8203;y-hsgw](https://github.com/y-hsgw)) - \[Tests] `button-has-type`: add test case with spread ([#&#8203;3731][] [@&#8203;y-hsgw](https://github.com/y-hsgw)) [7.36.0]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.35.2...v7.36.0 [#&#8203;3799]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3799 [#&#8203;3632]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3632 [#&#8203;3812]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3812 [#&#8203;3731]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3731 [#&#8203;3694]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3667 [#&#8203;3629]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3629 [#&#8203;3817]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3817 [#&#8203;3807]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3807 ### [`v7.35.2`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7352---20240903) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.35.1...v7.35.2) ##### Fixed - \[`jsx-curly-brace-presence`]: avoid autofixing attributes with double quotes to a double quoted attribute ([#&#8203;3814][] [@&#8203;ljharb](https://github.com/ljharb)) [7.35.2]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.35.1...v7.35.2 [#&#8203;3814]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3814 ### [`v7.35.1`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7351---20240902) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.35.0...v7.35.1) ##### Fixed - \[`jsx-curly-brace-presence`]: do not trigger on strings containing a quote character ([#&#8203;3798][] [@&#8203;akulsr0](https://github.com/akulsr0)) [7.35.1]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.35.0...v7.35.1 [#&#8203;3798]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3798 ### [`v7.35.0`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7350---20240719) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.4...v7.35.0) ##### Added - support eslint v9 ([#&#8203;3759][] [@&#8203;mdjermanovic](https://github.com/mdjermanovic)) - export flat configs from plugin root and fix flat config crash ([#&#8203;3694][] [@&#8203;bradzacher](https://github.com/bradzacher) [@&#8203;mdjermanovic](https://github.com/mdjermanovic)) - add \[`jsx-props-no-spread-multi`] ([#&#8203;3724][] [@&#8203;SimonSchick](https://github.com/SimonSchick)) - \[`forbid-component-props`]: add `propNamePattern` to allow / disallow prop name patterns ([#&#8203;3774][] [@&#8203;akulsr0](https://github.com/akulsr0)) - \[`jsx-handler-names`]: support ignoring component names ([#&#8203;3772][] [@&#8203;akulsr0](https://github.com/akulsr0)) - version settings: Allow react defaultVersion to be configurable ([#&#8203;3771][] [@&#8203;onlywei](https://github.com/onlywei)) - \[`jsx-closing-tag-location`]: add `line-aligned` option ([#&#8203;3777] [@&#8203;kimtaejin3](https://github.com/kimtaejin3)) - \[`no-danger`]: add `customComponentNames` option ([#&#8203;3748][] [@&#8203;akulsr0](https://github.com/akulsr0)) ##### Fixed - \[`no-invalid-html-attribute`]: substitute placeholders in suggestion messages ([#&#8203;3759][] [@&#8203;mdjermanovic](https://github.com/mdjermanovic)) - \[`sort-prop-types`]: single line type ending without semicolon ([#&#8203;3784][] [@&#8203;akulsr0](https://github.com/akulsr0)) - \[`require-default-props`]: report when required props have default value ([#&#8203;3785][] [@&#8203;akulsr0](https://github.com/akulsr0)) ##### Changed - \[Refactor] `variableUtil`: Avoid creating a single flat variable scope for each lookup ([#&#8203;3782][] [@&#8203;DanielRosenwasser](https://github.com/DanielRosenwasser)) [7.35.0]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.4...v7.35.0 [#&#8203;3785]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3785 [#&#8203;3784]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3784 [#&#8203;3782]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3782 [#&#8203;3777]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3777 [#&#8203;3774]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3774 [#&#8203;3772]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3772 [#&#8203;3771]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3771 [#&#8203;3759]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3759 [#&#8203;3748]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3748 [#&#8203;3724]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3724 [#&#8203;3694]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3694 ### [`v7.34.4`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7344---20240713) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.3...v7.34.4) ##### Fixed - \[`prop-types`]: fix `className` missing in prop validation false negative ([#&#8203;3749][] [@&#8203;akulsr0](https://github.com/akulsr0)) - \[`sort-prop-types`]: Check for undefined before accessing `node.typeAnnotation.typeAnnotation` ([#&#8203;3779][] [@&#8203;tylerlaprade](https://github.com/tylerlaprade)) [7.34.4]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.3...v7.34.4 [#&#8203;3779]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3779 [#&#8203;3749]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3749 ### [`v7.34.3`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7343---20240618) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.2...v7.34.3) ##### Fixed - \[`prop-types`]: null-check rootNode before calling getScope ([#&#8203;3762][] [@&#8203;crnhrv](https://github.com/crnhrv)) - \[`boolean-prop-naming`]: avoid a crash with a spread prop ([#&#8203;3733][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`jsx-boolean-value`]: `assumeUndefinedIsFalse` with `never` must not allow explicit `true` value ([#&#8203;3757][] [@&#8203;6uliver](https://github.com/6uliver)) - \[`no-object-type-as-default-prop`]: enable rule for components with many parameters ([#&#8203;3768][] [@&#8203;JulienR1](https://github.com/JulienR1)) - \[`jsx-key`]: incorrect behavior for checkKeyMustBeforeSpread with map callbacks ([#&#8203;3769][] [@&#8203;akulsr0](https://github.com/akulsr0)) [7.34.3]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.2...v7.34.3 [#&#8203;3769]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3769 [#&#8203;3768]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3768 [#&#8203;3762]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3762 [#&#8203;3757]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3757 [#&#8203;3733]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3733 ### [`v7.34.2`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7342---20240524) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.1...v7.34.2) ##### Fixed - \[`boolean-prop-naming`]: avoid a crash with a non-TSTypeReference type ([#&#8203;3718][] [@&#8203;developer-bandi](https://github.com/developer-bandi)) - \[`jsx-no-leaked-render`]: invalid report if left eside is boolean ([#&#8203;3746][] [@&#8203;akulsr0](https://github.com/akulsr0)) - \[`jsx-closing-bracket-location`]: message shows `{{details}}` when there are no details ([#&#8203;3759][] [@&#8203;mdjermanovic](https://github.com/mdjermanovic)) - \[`no-invalid-html-attribute`]: ensure error messages are correct ([#&#8203;3759][] [@&#8203;mdjermanovic](https://github.com/mdjermanovic), [@&#8203;ljharb](https://github.com/ljharb)) ##### Changed - \[Refactor] create various eslint utils to fix eslint deprecations ([#&#8203;3759][] [@&#8203;mdjermanovic](https://github.com/mdjermanovic), [@&#8203;ljharb](https://github.com/ljharb)) [7.34.2]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.1...v7.34.2 [#&#8203;3759]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3759 [#&#8203;3746]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3746 [#&#8203;3718]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3718 ### [`v7.34.1`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7341---20240315) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.0...v7.34.1) ##### Fixed - \[`jsx-no-leaked-render`]: prevent wrongly adding parens ([#&#8203;3700][] [@&#8203;developer-bandi](https://github.com/developer-bandi)) - \[`boolean-prop-naming`]: detect TS interfaces ([#&#8203;3701][] [@&#8203;developer-bandi](https://github.com/developer-bandi)) - \[`boolean-prop-naming`]: literalType error fix ([#&#8203;3704][] [@&#8203;developer-bandi](https://github.com/developer-bandi)) - \[`boolean-prop-naming`]: allow TSIntersectionType ([#&#8203;3705][] [@&#8203;developer-bandi](https://github.com/developer-bandi)) - \[`no-unknown-property`]: support `popover`, `popovertarget`, `popovertargetaction` attributes ([#&#8203;3707][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`no-unknown-property`]: only match `data-*` attributes containing `-` ([#&#8203;3713][] [@&#8203;silverwind](https://github.com/silverwind)) - \[`checked-requires-onchange-or-readonly`]: correct options that were behaving opposite ([#&#8203;3715][] [@&#8203;jaesoekjjang](https://github.com/jaesoekjjang)) - \[`boolean-prop-naming`]: avoid a crash with a non-TSTypeReference type (\[[#&#8203;3718](https://github.com/jsx-eslint/eslint-plugin-react/issues/3718)]\[] [@&#8203;developer-bandi](https://github.com/developer-bandi)) ##### Changed - \[`boolean-prop-naming`]: improve error message ([@&#8203;ljharb](https://github.com/ljharb)) [7.34.1]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.0...v7.34.1 [#&#8203;3715]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3715 [#&#8203;3713]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3713 [#&#8203;3707]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3707 [#&#8203;3705]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3705 [#&#8203;3704]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3704 [#&#8203;3701]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3701 [#&#8203;3700]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3700 ### [`v7.34.0`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7340---20240303) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.33.2...v7.34.0) ##### Added - \[`sort-prop-types`]: give errors on TS types ([#&#8203;3615][] [@&#8203;akulsr0](https://github.com/akulsr0)) - \[`no-invalid-html-attribute`]: add support for `apple-touch-startup-image` `rel` attributes in `link` tags ([#&#8203;3638][] [@&#8203;thomashockaday](https://github.com/thomashockaday)) - \[`no-unknown-property`]: add requireDataLowercase option ([#&#8203;3645][] [@&#8203;HermanBilous](https://github.com/HermanBilous)) - \[`no-unknown-property`]: add `displaystyle` on `<math>` ([#&#8203;3652][] [@&#8203;lounsbrough](https://github.com/lounsbrough)) - \[`prefer-read-only-props`], \[`prop-types`], component detection: allow components to be async functions ([#&#8203;3654][] [@&#8203;pnodet](https://github.com/pnodet)) - \[`no-unknown-property`]: support `onResize` on audio/video tags ([#&#8203;3662][] [@&#8203;caesar1030](https://github.com/caesar1030)) - \[`jsx-wrap-multilines`]: add `never` option to prohibit wrapping parens on multiline JSX ([#&#8203;3668][] [@&#8203;reedws](https://github.com/reedws)) - \[`jsx-filename-extension`]: add `ignoreFilesWithoutCode` option to allow empty files ([#&#8203;3674][] [@&#8203;burtek](https://github.com/burtek)) - \[`jsx-boolean-value`]: add `assumeUndefinedIsFalse` option ([#&#8203;3675][] [@&#8203;developer-bandi](https://github.com/developer-bandi)) - `linkAttribute` setting, \[`jsx-no-target-blank`]: support multiple properties ([#&#8203;3673][] [@&#8203;burtek](https://github.com/burtek)) - \[`jsx-no-script-url`]: add `includeFromSettings` option to support `linkAttributes` setting ([#&#8203;3673][] [@&#8203;burtek](https://github.com/burtek)) - \[`jsx-one-expression-per-line`]: add `non-jsx` option to allow non-JSX children in one line ([#&#8203;3677][] [@&#8203;burtek](https://github.com/burtek)) - add \[`checked-requires-onchange-or-readonly`] rule ([#&#8203;3680][] [@&#8203;jaesoekjjang](https://github.com/jaesoekjjang)) ##### Fixed - \[`jsx-no-leaked-render`]: preserve RHS parens for multiline jsx elements while fixing ([#&#8203;3623][] [@&#8203;akulsr0](https://github.com/akulsr0)) - \[`jsx-key`]: detect conditional returns ([#&#8203;3630][] [@&#8203;yialo](https://github.com/yialo)) - \[`jsx-newline`]: prevent a crash when `allowMultilines` ([#&#8203;3633][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`no-unknown-property`]: use a better regex to avoid a crash ([#&#8203;3666][] [@&#8203;ljharb](https://github.com/ljharb) [@&#8203;SCH227](https://github.com/SCH227)) - \[`prop-types`]: handle nested forwardRef + memo ([#&#8203;3679][] [@&#8203;developer-bandi](https://github.com/developer-bandi)) - \[`no-unknown-property`]: add `fetchPriority` ([#&#8203;3697][] [@&#8203;SevereCloud](https://github.com/SevereCloud)) - \[`forbid-elements`]: prevent a crash on `createElement()` ([#&#8203;3632][] [@&#8203;ljharb](https://github.com/ljharb)) ##### Changed - \[`jsx-boolean-value`]: make error messages clearer ([#&#8203;3691][] [@&#8203;developer-bandi](https://github.com/developer-bandi)) - \[Refactor] `propTypes`: extract type params to var ([#&#8203;3634][] [@&#8203;HenryBrown0](https://github.com/HenryBrown0)) - \[Refactor] \[`boolean-prop-naming`]: invert if statement ([#&#8203;3634][] [@&#8203;HenryBrown0](https://github.com/HenryBrown0)) - \[Refactor] \[`function-component-definition`]: exit early if no type params ([#&#8203;3634][] [@&#8203;HenryBrown0](https://github.com/HenryBrown0)) - \[Refactor] \[`jsx-props-no-multi-spaces`]: extract type parameters to var ([#&#8203;3634][] [@&#8203;HenryBrown0](https://github.com/HenryBrown0)) - \[Docs] \[`jsx-key`]: fix correct example ([#&#8203;3656][] [@&#8203;developer-bandi](https://github.com/developer-bandi)) - \[Tests] `jsx-wrap-multilines`: passing tests ([#&#8203;3545][] [@&#8203;burtek](https://github.com/burtek)) - \[Docs] \[`iframe-missing-sandbox`]: fix link to iframe attribute on mdn ([#&#8203;3690][] [@&#8203;nnmrts](https://github.com/nnmrts)) - \[Docs] \[`hook-use-state`]: fix an undefined variable ([#&#8203;3626][] [@&#8203;chentsulin](https://github.com/chentsulin)) [7.34.0]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.33.2...v7.34.0 [#&#8203;3697]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3697 [#&#8203;3691]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3691 [#&#8203;3690]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3690 [#&#8203;3680]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3680 [#&#8203;3679]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3679 [#&#8203;3677]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3677 [#&#8203;3675]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3675 [#&#8203;3674]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3674 [#&#8203;3673]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3673 [#&#8203;3668]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3668 [#&#8203;3666]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3666 [#&#8203;3662]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3662 [#&#8203;3656]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3656 [#&#8203;3654]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3654 [#&#8203;3652]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3652 [#&#8203;3645]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3645 [#&#8203;3638]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3638 [#&#8203;3634]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3634 [#&#8203;3633]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3633 [#&#8203;3632]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3632 [#&#8203;3630]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3630 [#&#8203;3626]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3626 [#&#8203;3623]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3623 [#&#8203;3615]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3615 [#&#8203;3545]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3545 ### [`v7.33.2`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7332---20230815) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.33.1...v7.33.2) ##### Fixed - \[`no-deprecated`]: prevent false positive on commonjs import ([#&#8203;3614][] [@&#8203;akulsr0](https://github.com/akulsr0)) - \[`no-unsafe`]: report on the method instead of the entire component ([@&#8203;ljharb](https://github.com/ljharb)) - \[`no-deprecated`]: report on the destructured property instead of the entire variable declarator ([@&#8203;ljharb](https://github.com/ljharb)) - \[`no-deprecated`]: report on the imported specifier instead of the entire import statement ([@&#8203;ljharb](https://github.com/ljharb)) - \[`no-invalid-html-attribute`]: report more granularly ([@&#8203;ljharb](https://github.com/ljharb)) [7.33.2]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.33.1...v7.33.2 [#&#8203;3614]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3614 ### [`v7.33.1`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7331---20230729) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.33.0...v7.33.1) ##### Fixed - \[`require-default-props`]: fix config schema ([#&#8203;3605][] [@&#8203;controversial](https://github.com/controversial)) - \[`jsx-curly-brace-presence`]: Revert \[[#&#8203;3538](https://github.com/jsx-eslint/eslint-plugin-react/issues/3538)]\[] due to issues with intended string type casting usage ([#&#8203;3611][] [@&#8203;taozhou-glean](https://github.com/taozhou-glean)) - \[`sort-prop-types`]: ensure sort-prop-types respects noSortAlphabetically ([#&#8203;3610][] [@&#8203;caesar1030](https://github.com/caesar1030)) [7.33.1]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.33.0...v7.33.1 [#&#8203;3611]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3611 [#&#8203;3610]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3610 [#&#8203;3605]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3605 ### [`v7.33.0`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7330---20230719) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.32.2...v7.33.0) ##### Added - \[`display-name`]: add `checkContextObjects` option ([#&#8203;3529][] [@&#8203;JulesBlm](https://github.com/JulesBlm)) - \[`jsx-first-prop-new-line`]: add `multiprop` option ([#&#8203;3533][] [@&#8203;haydncomley](https://github.com/haydncomley)) - \[`no-deprecated`]: add React 18 deprecations ([#&#8203;3548][] [@&#8203;sergei-startsev](https://github.com/sergei-startsev)) - \[`forbid-component-props`]: add `disallowedFor` option ([#&#8203;3417][] [@&#8203;jacketwpbb](https://github.com/jacketwpbb)) ##### Fixed - \[`no-array-index-key`]: consider flatMap ([#&#8203;3530][] [@&#8203;k-yle](https://github.com/k-yle)) - \[`jsx-curly-brace-presence`]: handle single and only expression template literals ([#&#8203;3538][] [@&#8203;taozhou-glean](https://github.com/taozhou-glean)) - \[`no-unknown-property`]: allow `onLoad` on `source` ([@&#8203;ljharb](https://github.com/ljharb)) - \[`jsx-first-prop-new-line`]: ensure autofix preserves generics in component name ([#&#8203;3546][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`no-unknown-property`]: allow `fill` prop on `<symbol>` ([#&#8203;3555][] [@&#8203;stefanprobst](https://github.com/stefanprobst)) - \[`display-name`], \[`prop-types`]: when checking for a capitalized name, ignore underscores entirely ([#&#8203;3560][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`no-unused-state`]: avoid crashing on a class field function with destructured state ([#&#8203;3568][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`no-unused-prop-types`]: allow using spread with object expression in jsx ([#&#8203;3570][] [@&#8203;akulsr0](https://github.com/akulsr0)) - Revert "\[`destructuring-assignment`]: Handle destructuring of useContext in SFC" ([#&#8203;3583][] \[[#&#8203;2797](https://github.com/jsx-eslint/eslint-plugin-react/issues/2797)]\[] [@&#8203;102](https://github.com/102)) - \[`prefer-read-only-props`]: add TS support ([#&#8203;3593][] [@&#8203;HenryBrown0](https://github.com/HenryBrown0)) ##### Changed - \[Docs] \[`jsx-newline`], \[`no-unsafe`], \[`static-property-placement`]: Fix code syntax highlighting ([#&#8203;3563][] [@&#8203;nbsp1221](https://github.com/nbsp1221)) - \[readme] resore configuration URL ([#&#8203;3582][] [@&#8203;gokaygurcan](https://github.com/gokaygurcan)) - \[Docs] \[`jsx-no-bind`]: reword performance rationale ([#&#8203;3581][] [@&#8203;gpoole](https://github.com/gpoole)) * \[Docs] \[`jsx-first-prop-new-line`]: add missing `multiprop` value ([#&#8203;3598][] [@&#8203;dzek69](https://github.com/dzek69)) [7.33.0]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.32.2...v7.33.0 [#&#8203;3598]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3598 [#&#8203;3593]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3593 [#&#8203;3583]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3583 [#&#8203;3582]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3582 [#&#8203;3581]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3581 [#&#8203;3570]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3570 [#&#8203;3568]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3568 [#&#8203;3563]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3563 [#&#8203;3560]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3560 [#&#8203;3555]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3555 [#&#8203;3548]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3548 [#&#8203;3546]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3546 [#&#8203;3538]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3538 [#&#8203;3533]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3533 [#&#8203;3530]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3530 [#&#8203;3529]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3529 [#&#8203;3417]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3417 ### [`v7.32.2`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7322---20230128) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.32.1...v7.32.2) ##### Fixed - configs: restore `parserOptions` in legacy configs (\[[#&#8203;3523](https://github.com/jsx-eslint/eslint-plugin-react/issues/3523)]\[] [@&#8203;ljharb](https://github.com/ljharb)) - \[`jsx-no-constructed-context-values`], \[`jsx-no-useless-fragment`]: add a rule schema ([@&#8203;ljharb](https://github.com/ljharb)) ( \[`no-unknown-property`]: add `fill` for `<marker>` ([#&#8203;3525][] [@&#8203;alexey-koran](https://github.com/alexey-koran)) [7.32.2]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.32.1...v7.32.2 [#&#8203;3525]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3525 [#&#8203;3520]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3523 ### [`v7.32.1`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7321---20230116) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.32.0...v7.32.1) ##### Fixed - prevent circular dependency in index and "all" config ([#&#8203;3519][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`destructuring-assignment`]: do not force destructuring of optionally chained properties ([#&#8203;3520][] [@&#8203;ljharb](https://github.com/ljharb)) [7.32.1]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.32.0...v7.32.1 [#&#8203;3520]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3520 [#&#8203;3519]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3519 ### [`v7.32.0`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7320---20230110) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.11...v7.32.0) ##### Added - support new config system ([#&#8203;3429][] [@&#8203;jjangga0214](https://github.com/jjangga0214)) - \[`hook-use-state`]: add `allowDestructuredState` option ([#&#8203;3449][] [@&#8203;ljharb](https://github.com/ljharb)) - add \[`sort-default-props`] and deprecate \[`jsx-sort-default-props`] ([#&#8203;1861][] [@&#8203;alexzherdev](https://github.com/alexzherdev)) - add \[`no-object-type-as-default-prop`] rule ([#&#8203;2848][] [@&#8203;cyan33](https://github.com/cyan33) [@&#8203;fengkx](https://github.com/fengkx)) ##### Fixed - configs: avoid legacy config system error ([#&#8203;3461][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`sort-prop-types`]: restore autofixing ([#&#8203;3452][], [#&#8203;3471][] [@&#8203;ROSSROSALES](https://github.com/ROSSROSALES)) - \[`no-unknown-property`]: do not check `fbs` elements ([#&#8203;3494][] [@&#8203;brianogilvie](https://github.com/brianogilvie)) - \[`jsx-newline`]: No newline between comments and jsx elements ([#&#8203;3493][] [@&#8203;justmejulian](https://github.com/justmejulian)) - \[`jsx-no-leaked-render`]: Don't report errors on empty strings if React >= v18 ([#&#8203;3488][] [@&#8203;himanshu007-creator](https://github.com/himanshu007-creator)) - \[`no-invalid-html-attribute`]: convert autofix to suggestion ([#&#8203;3474][] [@&#8203;himanshu007-creator](https://github.com/himanshu007-creator) [@&#8203;ljharb](https://github.com/ljharb)) - \[`jsx-no-leaked-render`]: fix removing parentheses for conditionals ([#&#8203;3502][] [@&#8203;akulsr0](https://github.com/akulsr0)) - \[`jsx-no-leaked-render`]: invalid fixes in coerce mode ([#&#8203;3511][] [@&#8203;akulsr0](https://github.com/akulsr0)) - \[`destructuring-assignment`]: Handle destructuring of useContext in SFC ([#&#8203;2797][] [@&#8203;Zinyon](https://github.com/Zinyon) [@&#8203;ljharb](https://github.com/ljharb)) ##### Changed - \[Docs] \[`jsx-no-leaked-render`]: Remove mentions of empty strings for React 18 ([#&#8203;3468][] [@&#8203;karlhorky](https://github.com/karlhorky)) - \[Docs] update `eslint-doc-generator` to v1.0.0 ([#&#8203;3499][] [@&#8203;bmish](https://github.com/bmish)) - \[meta] add issue template ([#&#8203;3483][] [@&#8203;ROSSROSALES](https://github.com/ROSSROSALES)) - \[Docs] Use emoji for jsx-runtime config and config file for eslint-doc-generator ([#&#8203;3504][] [@&#8203;bmish](https://github.com/bmish)) - \[Docs] \[`prefer-exact-props`]: fix example flow syntax ([#&#8203;3510][] [@&#8203;smackfu](https://github.com/smackfu)) - \[Perf] use `anyOf` instead of `oneOf` ([@&#8203;ljharb](https://github.com/ljharb) [@&#8203;remcohaszing](https://github.com/remcohaszing)) [7.32.0]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.11...v7.32.0 [#&#8203;3511]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3511 [#&#8203;3510]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3510 [#&#8203;3504]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3504 [#&#8203;3502]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3502 [#&#8203;3499]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3499 [#&#8203;3494]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3494 [#&#8203;3493]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3493 [#&#8203;3488]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3488 [#&#8203;3483]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3483 [#&#8203;3474]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3474 [#&#8203;3471]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3471 [#&#8203;3468]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3468 [#&#8203;3461]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3461 [#&#8203;3452]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3452 [#&#8203;3449]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3449 [#&#8203;3429]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3429 [#&#8203;2848]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2848 [#&#8203;2797]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2797 [#&#8203;1861]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1861 ### [`v7.31.11`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#73111---20221117) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.10...v7.31.11) ##### Fixed - \[`jsx-no-target-blank`]: allow ternaries with literals ([#&#8203;3464][] [@&#8203;akulsr0](https://github.com/akulsr0)) - \[`no-unknown-property`]: add `inert` attribute ([#&#8203;3484][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`jsx-key`]: detect keys in logical expression and conditional expression ([#&#8203;3490][] [@&#8203;metreniuk](https://github.com/metreniuk)) ##### Changed - \[Perf] component detection: improve performance by avoiding traversing parents unnecessarily ([#&#8203;3459][] [@&#8203;golopot](https://github.com/golopot)) - \[Docs] `forbid-component-props`: inclusive language w/ allowlist ([#&#8203;3473][] [@&#8203;AndersDJohnson](https://github.com/AndersDJohnson)) - \[Docs] automate doc generation with `eslint-doc-generator` ([#&#8203;3469][] [@&#8203;bmish](https://github.com/bmish)) [7.31.11]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.10...v7.31.11 [#&#8203;3490]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3490 [#&#8203;3484]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3484 [#&#8203;3473]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3473 [#&#8203;3469]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3469 [#&#8203;3464]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3464 [#&#8203;3459]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3459 ### [`v7.31.10`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#73110---20221010) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.9...v7.31.10) ##### Fixed - \[`no-unknown-property`]: allow `allowFullScreen` on `iframe` ([#&#8203;3455][] [@&#8203;almeidx](https://github.com/almeidx)) [7.31.10]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.9...v7.31.10 [#&#8203;3455]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3455 ### [`v7.31.9`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7319---20221009) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.8...v7.31.9) ##### Fixed - \[`no-unknown-property`]: add `dialog` attributes ([#&#8203;3436][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`no-arrow-function-lifecycle`]: when converting from an arrow, remove the semi and wrapping parens ([#&#8203;3337][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`jsx-key`]: Ignore elements inside `React.Children.toArray()` ([#&#8203;1591][] [@&#8203;silvenon](https://github.com/silvenon)) - \[`jsx-no-constructed-context-values`]: fix false positive for usage in non-components ([#&#8203;3448][] [@&#8203;golopot](https://github.com/golopot)) - \[`static-property-placement`]: warn on nonstatic expected-statics ([#&#8203;2581][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`no-unknown-property`]: properly tag-restrict case-insensitive attributes ([@&#8203;ljharb](https://github.com/ljharb)) - \[`no-unknown-property`]: allow `webkitDirectory` on `input`, case-insensitive ([#&#8203;3454][] [@&#8203;ljharb](https://github.com/ljharb)) ##### Changed - \[Docs] \[`no-unknown-property`]: fix typo in link ([#&#8203;3445][] [@&#8203;denkristoffer](https://github.com/denkristoffer)) - \[Perf] component detection: improve performance by optimizing getId ([#&#8203;3451][] [@&#8203;golopot](https://github.com/golopot)) - \[Docs] \[`no-unstable-nested-components`]: Warn about memoized, nested components ([#&#8203;3444][] [@&#8203;eps1lon](https://github.com/eps1lon)) [7.31.9]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.8...v7.31.9 [#&#8203;3454]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3454 [#&#8203;3451]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3451 [#&#8203;3448]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3448 [#&#8203;3445]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3445 [#&#8203;3444]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3444 [#&#8203;3436]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3436 [#&#8203;3337]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3337 [#&#8203;2581]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2581 [#&#8203;1591]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1591 ### [`v7.31.8`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7318---20220908) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.7...v7.31.8) ##### Fixed - \[`no-unknown-property`]: add `viewBox` on `marker` ([#&#8203;3416][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`no-unknown-property`]: add `noModule` on `script` ([#&#8203;3414][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`no-unknown-property`]: allow `onLoad` on `<object>` ([#&#8203;3415][] [@&#8203;OleksiiKachan](https://github.com/OleksiiKachan)) - \[`no-multi-comp`]: do not detect a function property returning only null as a component ([#&#8203;3412][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`no-unknown-property`]: allow `abbr` on `<th>` and `<td>` ([#&#8203;3419][] [@&#8203;OleksiiKachan](https://github.com/OleksiiKachan)) - \[`no-unknown-property`]: add `viewBox` for `pattern`, `symbol`, `view` ([#&#8203;3424][] [@&#8203;MNBuyskih](https://github.com/MNBuyskih)) - \[`no-unknown-property`]: add `align` on all the tags that support it ([#&#8203;3425][] [@&#8203;ljharb](https://github.com/ljharb)) ##### Changed - \[meta] npmignore markdownlint config ([#&#8203;3413][] [@&#8203;jorrit](https://github.com/jorrit)) [7.31.8]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.7...v7.31.8 [#&#8203;3425]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3425 [#&#8203;3424]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3424 [#&#8203;3419]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3419 [#&#8203;3416]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3416 [#&#8203;3415]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3415 [#&#8203;3414]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3414 [#&#8203;3413]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3413 [#&#8203;3412]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3412 ### [`v7.31.7`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7317---20220905) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.6...v7.31.7) ##### Fixed - \[`no-unknown-property`]: avoid warning on `fbt` nodes entirely ([#&#8203;3391][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`no-unknown-property`]: add `download` property support for `a` and `area` ([#&#8203;3394][] [@&#8203;HJain13](https://github.com/HJain13)) - \[`no-unknown-property`]: allow `webkitAllowFullScreen` and `mozAllowFullScreen` ([#&#8203;3396][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`no-unknown-property`]: `controlsList`, not `controlList` ([#&#8203;3397][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`no-unknown-property`]: add more capture event properties ([#&#8203;3402][] [@&#8203;sjarva](https://github.com/sjarva)) - \[`no-unknown-property`]: Add more one word properties found in DefinitelyTyped's react/index.d.ts ([#&#8203;3402][] [@&#8203;sjarva](https://github.com/sjarva)) - \[`no-unknown-property`]: Mark onLoad/onError as supported on iframes ([#&#8203;3398][] [@&#8203;maiis](https://github.com/maiis), [#&#8203;3406][] [@&#8203;akx](https://github.com/akx)) - \[`no-unknown-property`]: allow `imageSrcSet` and `imageSizes` attributes on `<link>` ([#&#8203;3407][] [@&#8203;terrymun](https://github.com/terrymun)) - \[`no-unknown-property`]: add `border`; `focusable` on `<svg>` ([#&#8203;3404][] [#&#8203;3404][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`no-unknown-property`]: React lowercases `data-` attrs ([#&#8203;3395][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`no-unknown-property`]: add `valign` on table components ([#&#8203;3389][] [@&#8203;ljharb](https://github.com/ljharb)) [7.31.7]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.6...v7.31.7 [#&#8203;3407]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3407 [#&#8203;3406]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3406 [#&#8203;3405]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3405 [#&#8203;3404]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3404 [#&#8203;3402]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3402 [#&#8203;3398]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3398 [#&#8203;3397]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3397 [#&#8203;3396]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3396 [#&#8203;3395]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3395 [#&#8203;3394]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3394 [#&#8203;3391]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3391 [#&#8203;3389]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3389 ### [`v7.31.6`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7316---20220904) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.5...v7.31.6) ##### Fixed - \[`no-unknown-property`]: `onError` and `onLoad` both work on `img` and `script` ([#&#8203;3388][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`no-unknown-property`]: data-\* attributes can have numbers ([#&#8203;3390][] [@&#8203;sjarva](https://github.com/sjarva)) - \[`no-unknown-property`]: add more audio/video attributes ([#&#8203;3390][] [@&#8203;sjarva](https://github.com/sjarva)) - \[`no-unknown-property`]: move allowfullscreen to case ignored attributes ([#&#8203;3390][] [@&#8203;sjarva](https://github.com/sjarva)) - \[`no-unknown-property`]: fill works on line, mask, and use elements ([#&#8203;3390][] [@&#8203;sjarva](https://github.com/sjarva)) - \[`no-unknown-property`]: add onMouseMoveCapture as valid react-specific attribute ([#&#8203;3390][] [@&#8203;sjarva](https://github.com/sjarva)) - \[`no-unknown-property`]: make onLoad and onError be accepted on more elements ([#&#8203;3390][] [@&#8203;sjarva](https://github.com/sjarva)) ##### Changed - \[Docs] \[`no-unknown-property`]: add a mention about using ignores properties with libraries that add props ([#&#8203;3390][] [@&#8203;sjarva](https://github.com/sjarva)) [7.31.6]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.5...v7.31.6 [#&#8203;3390]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3390 [#&#8203;3388]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3388 ### [`v7.31.5`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7315---20220903) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.4...v7.31.5) ##### Fixed - \[`no-unknown-property`]: add properties `onToggle`, `fill`, `as`, and pointer events ([#&#8203;3385][] [@&#8203;sjarva](https://github.com/sjarva)) - \[`no-unknown-property`]: add `defaultChecked` property ([#&#8203;3385][] [@&#8203;sjarva](https://github.com/sjarva)) - \[`no-unknown-property`]: add touch and media event related properties ([#&#8203;3385][] [@&#8203;sjarva](https://github.com/sjarva)) - \[`no-unknown-property`]: `children` is always an acceptable prop; iframes have `scrolling`; video has `playsInline` ([#&#8203;3385][] [@&#8203;ljharb](https://github.com/ljharb)) [7.31.5]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.4...v7.31.5 [#&#8203;3385]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3385 ### [`v7.31.4`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7314---20220903) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.3...v7.31.4) ##### Fixed - \[`no-unknown-property`]: support `checked` on inputs ([#&#8203;3383][] [@&#8203;ljharb](https://github.com/ljharb)) [#&#8203;3383]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3383 [7.31.4]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.3...v7.31.4 ### [`v7.31.3`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7313---20220902) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.2...v7.31.3) ##### Fixed - \[`no-unknown-property`]: add SVG and meta properties ([#&#8203;3381][] [@&#8203;AhmadMayo](https://github.com/AhmadMayo)) [7.31.3]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.2...v7.31.3 [#&#8203;3381]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3381 ### [`v7.31.2`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7312---20220902) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.1...v7.31.2) ##### Fixed - \[`jsx-key`]: avoid a crash with optional chaining ([#&#8203;3371][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`jsx-sort-props`]: avoid a crash with spread props ([#&#8203;3376][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`no-unknown-property`]: properly recognize valid data- and aria- attributes ([#&#8203;3377][] [@&#8203;sjarva](https://github.com/sjarva)) - \[`no-unknown-property`]: properly recognize unknown HTML/DOM attributes ([#&#8203;3377][] [@&#8203;sjarva](https://github.com/sjarva)) ##### Changed - \[Docs] \[`jsx-sort-props`]: replace ref string with ref variable ([#&#8203;3375][] [@&#8203;Luccasoli](https://github.com/Luccasoli)) - \[Refactor] \[`no-unknown-property`]: improve jsdoc; extract logic to separate functions ([#&#8203;3377][] [@&#8203;sjarva](https://github.com/sjarva)) - \[Refactor] \[`no-unknown-property`]: update DOM properties to include also one word properties ([#&#8203;3377][] [@&#8203;sjarva](https://github.com/sjarva)) [7.31.2]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.1...v7.31.2 [#&#8203;3377]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3377 [#&#8203;3376]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3376 [#&#8203;3375]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3375 [#&#8203;3371]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3371 ### [`v7.31.1`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#73111---20221117) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.0...v7.31.1) ##### Fixed - \[`jsx-no-target-blank`]: allow ternaries with literals ([#&#8203;3464][] [@&#8203;akulsr0](https://github.com/akulsr0)) - \[`no-unknown-property`]: add `inert` attribute ([#&#8203;3484][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`jsx-key`]: detect keys in logical expression and conditional expression ([#&#8203;3490][] [@&#8203;metreniuk](https://github.com/metreniuk)) ##### Changed - \[Perf] component detection: improve performance by avoiding traversing parents unnecessarily ([#&#8203;3459][] [@&#8203;golopot](https://github.com/golopot)) - \[Docs] `forbid-component-props`: inclusive language w/ allowlist ([#&#8203;3473][] [@&#8203;AndersDJohnson](https://github.com/AndersDJohnson)) - \[Docs] automate doc generation with `eslint-doc-generator` ([#&#8203;3469][] [@&#8203;bmish](https://github.com/bmish)) [7.31.11]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.10...v7.31.11 [#&#8203;3490]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3490 [#&#8203;3484]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3484 [#&#8203;3473]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3473 [#&#8203;3469]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3469 [#&#8203;3464]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3464 [#&#8203;3459]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3459 ### [`v7.31.0`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7310---20220824) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.30.2...v7.31.0) ##### Added - \[`jsx-newline`]: add `allowMultiline` option when prevent option is true ([#&#8203;3311][] [@&#8203;TildaDares](https://github.com/TildaDares)) - \[`forbid-dom-props`]: add `disallowedFor` option ([#&#8203;3338][] [@&#8203;TildaDares](https://github.com/TildaDares)) ##### Fixed - \[`jsx-no-literals`]: properly error on children with noAttributeStrings: true ([#&#8203;3317][] [@&#8203;TildaDares](https://github.com/TildaDares)) - \[`jsx-key`]: catch key errors inside conditional statements ([#&#8203;3320][] [@&#8203;TildaDares](https://github.com/TildaDares)) - \[`display-name`]: Accept forwardRef and Memo nesting in newer React versions ([#&#8203;3321][] [@&#8203;TildaDares](https://github.com/TildaDares)) - \[`jsx-key`]: avoid a crash from optional chaining from [#&#8203;3320][] ([#&#8203;3327][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`jsx-key`]: avoid a crash on a non-array node.body from [#&#8203;3320][] ([#&#8203;3328][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`display-name`]: fix false positive for assignment of function returning null ([#&#8203;3331][] [@&#8203;apbarrero](https://github.com/apbarrero)) - \[`display-name`]: fix identifying `_` as a capital letter ([#&#8203;3335][] [@&#8203;apbarrero](https://github.com/apbarrero)) - \[`require-default-props`]: avoid a crash when function has no props param ([#&#8203;3350][] [@&#8203;noahnu](https://github.com/noahnu)) - \[`display-name`], component detection: fix HOF returning null as Components ([#&#8203;3347][] [@&#8203;jxm-math](https://github.com/jxm-math)) - \[`forbid-prop-types`]: Ignore objects that are not of type React.PropTypes ([#&#8203;3326][] [@&#8203;TildaDares](https://github.com/TildaDares)) - \[`display-name`], component detection: fix false positive for HOF returning only nulls and literals ([#&#8203;3305][] [@&#8203;golopot](https://github.com/golopot)) - \[`jsx-no-target-blank`]: False negative when rel attribute is assigned using ConditionalExpression ([#&#8203;3332][] [@&#8203;V2dha](https://github.com/V2dha)) - \[`jsx-no-leaked-render`]: autofix nested "&&" logical expressions ([#&#8203;3353][] [@&#8203;hduprat](https://github.com/hduprat)) - \[`jsx-sort-props`]: sorted attributes now respect comments ([#&#8203;3358][] [@&#8203;ROSSROSALES](https://github.com/ROSSROSALES)) ##### Changed - \[Refactor] \[`jsx-indent-props`]: improved readability of the checkNodesIndent function ([#&#8203;3315][] [@&#8203;caroline223](https://github.com/caroline223)) - \[Tests] \[`jsx-indent`], \[`jsx-one-expression-per-line`]: add passing test cases ([#&#8203;3314][] [@&#8203;ROSSROSALES](https://github.com/ROSSROSALES)) - \[Refactor] `boolean-prop-naming`, `jsx-indent`: avoid assigning to arguments ([#&#8203;3316][] [@&#8203;caroline223](https://github.com/caroline223)) - \[Docs] \[`sort-comp`]: add class component examples ([#&#8203;3339][] [@&#8203;maurer2](https://github.com/maurer2)) - \[Docs] \[`jsx-no-useless-fragment`]: add more examples of correct code ([#&#8203;3349][] [@&#8203;karlhorky](https://github.com/karlhorky)) - \[Docs] \[`jsx-boolean-value`]: add jsdoc types for helper functions ([#&#8203;3344][] [@&#8203;caroline223](https://github.com/caroline223)) - \[readme] remove dead codeclimate badge, add actions badge ([@&#8203;ljharb](https://github.com/ljharb)) - \[readme] Remove dead david-dm badge ([#&#8203;3262][] [@&#8203;ddzz](https://github.com/ddzz)) - \[Refactor] \[`jsx-closing-bracket-location`], \[`jsx-no-bind`]: fix eslint issues ([#&#8203;3351][] [@&#8203;caroline223](https://github.com/caroline223)) - \[Tests] \[`function-component-definition`]: add passing test cases ([#&#8203;3355][] [@&#8203;TildaDares](https://github.com/TildaDares)) - \[Docs] \[`jsx-no-target-blank`]: Fix link to link-type-noreferrer ([#&#8203;3319][] [@&#8203;Luccasoli](https://github.com/Luccasoli)) - \[Docs] document which rules provide suggestions ([#&#8203;3359][], [#&#8203;3365][] [@&#8203;bmish](https://github.com/bmish)) - \[Docs] Consistent rule descriptions and doc sections ([#&#8203;3361][] [@&#8203;bmish](https://github.com/bmish)) - \[Docs] Standardize deprecated rule notice ([#&#8203;3364][] [@&#8203;bmish](https://github.com/bmish)) - \[Docs] Fix typos ([#&#8203;3366][] [@&#8203;bmish](https://github.com/bmish)) - \[Docs] Add markdownlint for documentation formatting consistency ([#&#8203;3367][] [@&#8203;bmish](https://github.com/bmish)) - \[Docs] Add config notice to rule docs ([#&#8203;3362][] [@&#8203;bmish](https://github.com/bmish)) [7.31.0]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.30.1...v7.31.0 [#&#8203;3367]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3367 [#&#8203;3366]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3366 [#&#8203;3365]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3365 [#&#8203;3364]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3364 [#&#8203;3362]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3362 [#&#8203;3361]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3361 [#&#8203;3359]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3359 [#&#8203;3358]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3358 [#&#8203;3355]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3355 [#&#8203;3353]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3353 [#&#8203;3351]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3351 [#&#8203;3350]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3350 [#&#8203;3349]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3349 [#&#8203;3347]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3347 [#&#8203;3344]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3344 [#&#8203;3339]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3339 [#&#8203;3338]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3338 [#&#8203;3335]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3335 [#&#8203;3332]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3332 [#&#8203;3331]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3331 [#&#8203;3328]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3328 [#&#8203;3327]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3327 [#&#8203;3326]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3326 [#&#8203;3321]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3321 [#&#8203;3320]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3320 [#&#8203;3319]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3319 [#&#8203;3317]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3317 [#&#8203;3316]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3316 [#&#8203;3315]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3315 [#&#8203;3314]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3314 [#&#8203;3311]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3311 [#&#8203;3305]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3305 [#&#8203;3262]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3262 ### [`v7.30.2`](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.30.1...v7.30.2) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.30.1...v7.30.2) ### [`v7.30.1`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7301---20220623) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.30.0...v7.30.1) ##### Fixed - \[`display-name`]: fix false positive for HOF returning only nulls ([#&#8203;3291][] [@&#8203;golopot](https://github.com/golopot)) - \[`jsx-no-leaked-render`]: avoid unnecessary negation operators and ternary branches deletion ([#&#8203;3299][] [@&#8203;Belco90](https://github.com/Belco90)) - \[`display-name`]: fix false positive when using memo ([#&#8203;3304][] [@&#8203;golopot](https://github.com/golopot)) ##### Changed - \[Docs] \[`jsx-tag-spacing`]: rename option from \[[#&#8203;3264](https://github.com/jsx-eslint/eslint-plugin-react/issues/3264)]\[] (\[[#&#8203;3294](https://github.com/jsx-eslint/eslint-plugin-react/issues/3294)\[] [@&#8203;ljharb](https://github.com/ljharb)) - \[Docs] \[`jsx-key`]: split the examples ([#&#8203;3293][] [@&#8203;ioggstream](https://github.com/ioggstream)) [7.30.1]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.30.0...v7.30.1 [#&#8203;3304]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3304 [#&#8203;3299]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3299 [#&#8203;3294]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3294 [#&#8203;3293]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3293 [#&#8203;3291]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3291 ### [`v7.30.0`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7300---20220518) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.29.4...v7.30.0) ##### Added - \[`destructuring-assignment`]: add option `destructureInSignature` ([#&#8203;3235][] [@&#8203;golopot](https://github.com/golopot)) - \[`no-unknown-property`]: Allow crossOrigin on image tag (SVG) ([#&#8203;3251][] [@&#8203;zpao](https://github.com/zpao)) - \[`jsx-tag-spacing`]: Add `multiline-always` option ([#&#8203;3260][], [#&#8203;3264][] [@&#8203;Nokel81](https://github.com/Nokel81)) - \[`function-component-definition`]: replace `var` by `const` in certain situations ([#&#8203;3248][] [@&#8203;JohnBerd](https://github.com/JohnBerd) [@&#8203;SimeonC](https://github.com/SimeonC)) - add \[`jsx-no-leaked-render`] ([#&#8203;3203][] [@&#8203;Belco90](https://github.com/Belco90)) - \[`require-default-props`]: add option `functions` ([#&#8203;3249][] [@&#8203;nix6839](https://github.com/nix6839)) - \[`jsx-newline`]: Add `allowMultilines` option (\[[#&#8203;3311](https://github.com/jsx-eslint/eslint-plugin-react/issues/3311)]\[] [@&#8203;TildaDares](https://github.com/TildaDares)) ##### Fixed - \[`hook-use-state`]: Allow UPPERCASE setState setter prefixes ([#&#8203;3244][] [@&#8203;duncanbeevers](https://github.com/duncanbeevers)) - `propTypes`: add `VFC` to react generic type param map ([#&#8203;3230][] [@&#8203;dlech](https://github.com/dlech)) - \[`no-unused-state`]: avoid a crash ([#&#8203;3258][] [@&#8203;WillyLiaoWH](https://github.com/WillyLiaoWH) [@&#8203;ljharb](https://github.com/ljharb)) - \[`jsx-no-useless-fragment`]: use proper apostrophe in error message ([#&#8203;3266][] [@&#8203;develohpanda](https://github.com/develohpanda)) - `propTypes`: handle imported types/interface in forwardRef generic ([#&#8203;3280][] [@&#8203;vedadeepta](https://github.com/vedadeepta)) - \[`button-has-type`]: fix exception for `<button type>` ([#&#8203;3255][] [@&#8203;meowtec](https://github.com/meowtec)) - \[`no-unstable-nested-components`]: Improve error message and catch React.memo() ([#&#8203;3247][] [@&#8203;zacharyliu](https://github.com/zacharyliu)) ##### Changed - \[readme] remove global usage and eslint version from readme ([#&#8203;3254][] [@&#8203;aladdin-add](https://github.com/aladdin-add)) - \[Refactor] fix linter errors ([#&#8203;3261][] [@&#8203;golopot](https://github.com/golopot)) - \[Docs] \[`no-unused-prop-types`]: fix syntax errors ([#&#8203;3259][] [@&#8203;mrdulin](https://github.com/mrdulin)) - \[Refactor] improve performance for detecting function components ([#&#8203;3265][] [@&#8203;golopot](https://github.com/golopot)) - \[Refactor] improve performance for detecting class components ([#&#8203;3267][] [@&#8203;golopot](https://github.com/golopot)) - \[Refactor] \[`no-deprecated`]: improve performance ([#&#8203;3271][] [@&#8203;golopot](https://github.com/golopot)) - \[Refactor] \[`no-did-mount-set-state`], \[`no-did-update-set-state`], \[`no-will-update-set-state`]: improve performance ([#&#8203;3272][] [@&#8203;golopot](https://github.com/golopot)) - \[Refactor] improve performance by avoiding unnecessary `Components.detect` ([#&#8203;3273][] [@&#8203;golopot](https://github.com/golopot)) - \[Refactor] add `isParenthesized` AST util ([#&#8203;3203][] [@&#8203;Belco90](https://github.com/Belco90)) - \[Docs] `default-props-match-prop-types`, `require-default-props`, `sort-prop-types`: fix typos ([#&#8203;3279][] [@&#8203;nix6839](https://github.com/nix6839)) - \[Refactor] improve performance of rule merging ([#&#8203;3281][] [@&#8203;golopot](https://github.com/golopot)) - \[Refactor] improve performance of component detection ([#&#8203;3276][] [@&#8203;golopot](https://github.com/golopot)) [7.30.0]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.29.4...v7.30.0 [#&#8203;3281]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3281 [#&#8203;3280]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3280 [#&#8203;3279]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3279 [#&#8203;3276]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3276 [#&#8203;3273]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3273 [#&#8203;3272]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3272 [#&#8203;3271]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3271 [#&#8203;3267]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3267 [#&#8203;3266]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3266 [#&#8203;3265]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3265 [#&#8203;3264]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3264 [#&#8203;3261]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3261 [#&#8203;3260]: https://github.jsx-eslintckcr/eslint-plugin-react/pull/3260 [#&#8203;3259]: https://githubjsx-eslintickcr/eslint-plugin-react/pull/3259 [#&#8203;3258]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3258 [#&#8203;3255]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3255 [#&#8203;3254]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3254 [#&#8203;3251]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3251 [#&#8203;3249]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3249 [#&#8203;3248]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3248 [#&#8203;3247]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3247 [#&#8203;3244]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3244 [#&#8203;3235]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3235 [#&#8203;3230]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3230 [#&#8203;3203]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3203 ### [`v7.29.4`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7294---20220313) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.29.3...v7.29.4) ##### Fixed - \[`no-unused-state`]: avoid a crash on a class field gDSFP ([#&#8203;3236][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`boolean-prop-naming`]: handle React.FC, intersection, union types ([#&#8203;3241][] [@&#8203;ljharb](https://github.com/ljharb)) [7.29.4]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.29.3...v7.29.4 [#&#8203;3241]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3241 [#&#8203;3236]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3236 ### [`v7.29.3`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7293---20220303) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.29.2...v7.29.3) ##### Fixed - \[`no-unused-state`]: avoid a crash on type-only gDSFP declarations ([#&#8203;3225][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`jsx-curly-brace-presence`]: the string "never" defaults to `propElementValues` as `ignore` ([#&#8203;3228][] [@&#8203;ljharb](https://github.com/ljharb)) - `propTypes`: add `VFC` to react generic list ([#&#8203;3230][] [@&#8203;ljharb](https://github.com/ljharb)) [7.29.3]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.29.2...v7.29.3 [#&#8203;3230]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3230 [#&#8203;3228]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3228 [#&#8203;3225]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3225 ### [`v7.29.2`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7292---20220225) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.29.1...v7.29.2) ##### Fixed - \[`jsx-curly-brace-presence`]: avoid warning on curlies containing quote characters ([#&#8203;3214][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`jsx-indent`]: do not report on non-jsx-returning ternaries that contain null ([#&#8203;3222][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`jsx-indent`]: properly report on returned ternaries with jsx ([#&#8203;3222][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`no-array-index-key`]: detect named-imported `cloneElement`/`createElement` ([#&#8203;3213][] [@&#8203;ljharb](https://github.com/ljharb)) [7.29.2]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.29.1...v7.29.2 [#&#8203;3222]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3222 [#&#8203;3214]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3214 [#&#8203;3213]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3213 ### [`v7.29.1`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7291---20220225) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.29.0...v7.29.1) ##### Fixed - \[`jsx-key`]: prevent false "missing array key" warning ([#&#8203;3215][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`jsx-indent`]: avoid checking returns sans jsx ([#&#8203;3218][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`jsx-key`]: avoid a crash ([#&#8203;3220][] [@&#8203;ljharb](https://github.com/ljharb)) - version settings: avoid a crash with an invalid version ([#&#8203;3219][] [@&#8203;ljharb](https://github.com/ljharb)) [7.29.1]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.29.0...v7.29.1 [#&#8203;3220]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3220 [#&#8203;3219]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3219 [#&#8203;3218]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3218 [#&#8203;3215]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3215 ### [`v7.29.0`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7290---20220224) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.28.0...v7.29.0) ##### Added - add \[`hook-use-state`] rule to enforce symmetric useState hook variable names ([#&#8203;2921][] [@&#8203;duncanbeevers](https://github.com/duncanbeevers)) - \[`jsx-no-target-blank`]: Improve fixer with option `allowReferrer` ([#&#8203;3167][] [@&#8203;apepper](https://github.com/apepper)) - \[`jsx-curly-brace-presence`]: add "propElementValues" config option ([#&#8203;3191][] [@&#8203;ljharb](https://github.com/ljharb)) - add \[`iframe-missing-sandbox`] rule ([#&#8203;2753][] [@&#8203;tosmolka](https://github.com/tosmolka) [@&#8203;ljharb](https://github.com/ljharb)) - \[`no-did-mount-set-state`], \[`no-did-update-set-state`]: no-op with react >= 16.3 ([#&#8203;1754][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`jsx-sort-props`]: support multiline prop groups ([#&#8203;3198][] [@&#8203;duhamelgm](https://github.com/duhamelgm)) - \[`jsx-key`]: add `warnDuplicates` option to warn on duplicate jsx keys in an array ([#&#8203;2614][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`jsx-sort-props`]: add `locale` option ([#&#8203;3002][] [@&#8203;ljharb](https://github.com/ljharb)) ##### Fixed - \[`prop-types`], `propTypes`: add support for exported type inference ([#&#8203;3163][] [@&#8203;vedadeepta](https://github.com/vedadeepta)) - \[`no-invalid-html-attribute`]: allow 'shortcut icon' on `link` ([#&#8203;3174][] [@&#8203;Primajin](https://github.com/Primajin)) - \[`prefer-exact-props`] improve performance for `Identifier` visitor ([#&#8203;3190][] [@&#8203;meowtec](https://github.com/meowtec)) - `propTypes`: Handle TSTypeReference in no-unused-prop-type ([#&#8203;3195][] [@&#8203;niik](https://github.com/niik)) - \[`sort-prop-types`]: avoid repeated warnings of the same node/reason ([#&#8203;519][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`jsx-indent`]: Fix indent handling for closing parentheses ([#&#8203;620][] [@&#8203;stefanbuck](https://github.com/stefanbuck)]) - \[`prop-types`]/`propTypes`: follow a returned identifier to see if it is JSX ([#&#8203;1046][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`no-unused-state`]: TS: support `getDerivedStateFromProps` as an arrow function ([#&#8203;2061][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`no-array-index-key`]: catch `.toString` and `String()` usage ([#&#8203;2813][] [@&#8203;RedTn](https://github.com/RedTn)) - \[`function-component-definition`]: do not break on dollar signs ([#&#8203;3207][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`prefer-stateless-function`]: avoid a crash inside `doctrine` ([#&#8203;2596][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`prop-types`]: catch infinite loop ([#&#8203;2861][] [@&#8203;ljharb](https://github.com/ljharb)) - \[`forbid-prop-types`]: properly report name in error message; check undestructured arguments ([#&#8203;2945][] [@&#8203;ljharb](https://github.com/ljharb)) ##### Changed - \[readme] change \[`jsx-runtime`] link from branch to sha ([#&#8203;3160][] [@&#8203;tatsushitoji](https://github.com/tatsushitoji)) - \[Docs] HTTP => HTTPS ([#&#8203;3133][] [@&#8203;Schweinepriester](https://github.com/Schweinepriester)) - \[readme] Some grammar fixes ([#&#8203;3186][] [@&#8203;JJ](https://github.com/JJ)) - \[Docs] \[`jsx-no-target-blank`]: Improve readme ([#&#8203;3169][] [@&#8203;apepper](https://github.com/apepper)) - \[Docs] \[`display-name`]: improve examples ([#&#8203;3189][] [@&#8203;golopot](https://github.com/golopot)) - \[Refactor] \[`no-invalid-html-attribute`]: sort HTML_ELEMENTS and messages ([#&#8203;3182][] [@&#8203;Primajin](https://github.com/Primajin)) - \[Docs] \[`forbid-foreign-prop-types`]: document `allowInPropTypes` option ([#&#8203;1815][] [@&#8203;ljharb](https://github.com/ljharb)) - \[Refactor] \[`jsx-sort-default-props`]: remove unnecessary code ([#&#8203;1817][] [@&#8203;ljharb](https://github.com/ljharb)) - \[Docs] \[`jsx-no-target-blank`]: fix syntax highlighting ([#&#8203;3199][] [@&#8203;shamrin](https://github.com/shamrin)) - \[Docs] \[`jsx-key`]: improve example ([#&#8203;3202][] [@&#8203;chnakamura](https://github.com/chnakamura)) - \[Refactor] \[`jsx-key`]: use more AST selectors ([@&#8203;ljharb](https://github.com/ljharb)) [7.29.0]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.28.0...v7.29.0 [#&#8203;3207]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3207 [#&#8203;3202]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3202 [#&#8203;3199]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3199 [#&#8203;3198]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3198 [#&#8203;3195]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3195 [#&#8203;3191]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3191 [#&#8203;3190]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3190 [#&#8203;3189]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3189 [#&#8203;3186]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3186 [#&#8203;3182]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3182 [#&#8203;3174]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3174 [#&#8203;3169]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3169 [#&#8203;3167]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3167 [#&#8203;3163]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3163 [#&#8203;3160]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3160 [#&#8203;3133]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3133 [#&#8203;3002]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3002 [#&#8203;2945]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2945 [#&#8203;2921]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2921 [#&#8203;2861]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2861 [#&#8203;2813]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2813 [#&#8203;2753]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2753 [#&#8203;2614]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2614 [#&#8203;2596]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2596 [#&#8203;2061]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2061 [#&#8203;1817]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1817 [#&#8203;1815]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1815 [#&#8203;1754]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1754 [#&#8203;1046]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1046 [#&#8203;620]: https://github.com/jsx-eslint/eslint-plugin-react/pull/620 [#&#8203;519]: https://github.com/jsx-eslint/eslint-plugin-react/issues/519 </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xODYuNCIsInVwZGF0ZWRJblZlciI6IjQ0LjE4Ni40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
renovate force-pushed renovate/eslint-plugin-react-7.x-lockfile from f36b9ecbd7 to c97fd1dd08 2026-11-03 00:44:47 +00:00 Compare
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin "renovate/eslint-plugin-react-7.x-lockfile:renovate/eslint-plugin-react-7.x-lockfile"
git switch "renovate/eslint-plugin-react-7.x-lockfile"

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch "main"
git merge --no-ff "renovate/eslint-plugin-react-7.x-lockfile"
git switch "renovate/eslint-plugin-react-7.x-lockfile"
git rebase "main"
git switch "main"
git merge --ff-only "renovate/eslint-plugin-react-7.x-lockfile"
git switch "renovate/eslint-plugin-react-7.x-lockfile"
git rebase "main"
git switch "main"
git merge --no-ff "renovate/eslint-plugin-react-7.x-lockfile"
git switch "main"
git merge --squash "renovate/eslint-plugin-react-7.x-lockfile"
git switch "main"
git merge --ff-only "renovate/eslint-plugin-react-7.x-lockfile"
git switch "main"
git merge "renovate/eslint-plugin-react-7.x-lockfile"
git push origin "main"
Sign in to join this conversation.
No description provided.