eslint-plugin-react
Advanced tools
Changelog
[7.35.0] - 2024.07.19
jsx-props-no-spread-multi
] ([#3724][] @SimonSchick)forbid-component-props
]: add propNamePattern
to allow / disallow prop name patterns ([#3774][] @akulsr0)jsx-handler-names
]: support ignoring component names ([#3772][] @akulsr0)jsx-closing-tag-location
]: add line-aligned
option ([#3777] @kimtaejin3)no-danger
]: add customComponentNames
option ([#3748][] @akulsr0)no-invalid-html-attribute
]: substitute placeholders in suggestion messages ([#3759][] @mdjermanovic)sort-prop-types
]: single line type ending without semicolon ([#3784][] @akulsr0)require-default-props
]: report when required props have default value ([#3785][] @akulsr0)variableUtil
: Avoid creating a single flat variable scope for each lookup ([#3782][] @DanielRosenwasser)Changelog
[7.34.4] - 2024.07.13
prop-types
]: fix className
missing in prop validation false negative ([#3749][] @akulsr0)sort-prop-types
]: Check for undefined before accessing node.typeAnnotation.typeAnnotation
([#3779][] @tylerlaprade)Changelog
[7.34.3] - 2024.06.18
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)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 side is boolean ([#3746][] @akulsr0)jsx-closing-bracket-location
]: message shows {{details}}
when there are no details ([#3759][] @mdjermanovic)no-invalid-html-attribute
]: ensure error messages are correct ([#3759][] @mdjermanovic, @ljharb)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)