eslint-plugin-react
Advanced tools
Changelog
[7.34.2] - 2024.05.24
boolean-prop-naming
]: avoid a crash with a non-TSTypeReference type ([#3718][] @developer-bandi)jsx-no-leaked-render
]: invalid report if left eside 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)Changelog
[7.34.1] - 2024.03.15
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)Changelog
[7.34.0] - 2024.03.03
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)Changelog
[7.33.2] - 2023.08.15
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)Changelog
[7.33.1] - 2023.07.29
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)Changelog
[7.33.0] - 2023.07.19
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)Changelog
[7.32.2] - 2023.01.28
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)Changelog
[7.32.1] - 2023.01.16
destructuring-assignment
]: do not force destructuring of optionally chained properties ([#3520][] @ljharb)Changelog
[7.32.0] - 2023.01.10
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)Changelog
[7.31.11] - 2022.11.17
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)