eslint-plugin-react
Advanced tools
Changelog
[7.31.0] - 2022.08.24
jsx-newline
]: add allowMultiline
option when prevent option is true ([#3311][] @TildaDares)forbid-dom-props
]: add disallowedFor
option ([#3338][] @TildaDares)jsx-no-literals
]: properly error on children with noAttributeStrings: true ([#3317][] @TildaDares)jsx-key
]: catch key errors inside conditional statements ([#3320][] @TildaDares)display-name
]: Accept forwardRef and Memo nesting in newer React versions ([#3321][] @TildaDares)jsx-key
]: avoid a crash from optional chaining from [#3320][] ([#3327][] @ljharb)jsx-key
]: avoid a crash on a non-array node.body from [#3320][] ([#3328][] @ljharb)display-name
]: fix false positive for assignment of function returning null ([#3331][] @apbarrero)display-name
]: fix identifying _
as a capital letter ([#3335][] @apbarrero)require-default-props
]: avoid a crash when function has no props param ([#3350][] @noahnu)display-name
], component detection: fix HOF returning null as Components ([#3347][] @jxm-math)forbid-prop-types
]: Ignore objects that are not of type React.PropTypes ([#3326][] @TildaDares)display-name
], component detection: fix false positive for HOF returning only nulls and literals ([#3305][] @golopot)jsx-no-target-blank
]: False negative when rel attribute is assigned using ConditionalExpression ([#3332][] @V2dha)jsx-no-leaked-render
]: autofix nested "&&" logical expressions ([#3353][] @hduprat)jsx-sort-props
]: sorted attributes now respect comments ([#3358][] @ROSSROSALES)jsx-indent-props
]: improved readability of the checkNodesIndent function ([#3315][] @caroline223)jsx-indent
], [jsx-one-expression-per-line
]: add passing test cases ([#3314][] @ROSSROSALES)boolean-prop-naming
, jsx-indent
: avoid assigning to arguments ([#3316][] @caroline223)sort-comp
]: add class component examples ([#3339][] @maurer2)jsx-no-useless-fragment
]: add more examples of correct code ([#3349][] @karlhorky)jsx-boolean-value
]: add jsdoc types for helper functions ([#3344][] @caroline223)jsx-closing-bracket-location
], [jsx-no-bind
]: fix eslint issues ([#3351][] @caroline223)function-component-definition
]: add passing test cases ([#3355][] @TildaDares)jsx-no-target-blank
]: Fix link to link-type-noreferrer ([#3319][] @Luccasoli)Changelog
[7.30.1] - 2022.06.23
display-name
]: fix false positive for HOF returning only nulls ([#3291][] @golopot)jsx-no-leaked-render
]: avoid unnecessary negation operators and ternary branches deletion ([#3299][] @Belco90)display-name
]: fix false positive when using memo ([#3304][] @golopot)jsx-tag-spacing
]: rename option from [#3264][] ([#3294[] @ljharb)jsx-key
]: split the examples ([#3293][] @ioggstream)Changelog
[7.30.0] - 2022.05.18
destructuring-assignment
]: add option destructureInSignature
([#3235][] @golopot)no-unknown-property
]: Allow crossOrigin on image tag (SVG) ([#3251][] @zpao)jsx-tag-spacing
]: Add multiline-always
option ([#3260][], [#3264][] @Nokel81)function-component-definition
]: replace var
by const
in certain situations ([#3248][] @JohnBerd @SimeonC)jsx-no-leaked-render
] ([#3203][] @Belco90)require-default-props
]: add option functions
([#3249][] @nix6839)jsx-newline
]: Add allowMultilines
option ([#3311][] @TildaDares)hook-use-state
]: Allow UPPERCASE setState setter prefixes ([#3244][] @duncanbeevers)propTypes
: add VFC
to react generic type param map ([#3230][] @dlech)no-unused-state
]: avoid a crash ([#3258][] @WillyLiaoWH @ljharb)jsx-no-useless-fragment
]: use proper apostrophe in error message ([#3266][] @develohpanda)propTypes
: handle imported types/interface in forwardRef generic ([#3280][] @vedadeepta)button-has-type
]: fix exception for <button type>
([#3255][] @meowtec)no-unstable-nested-components
]: Improve error message and catch React.memo() ([#3247][] @zacharyliu)no-unused-prop-types
]: fix syntax errors ([#3259][] @mrdulin)no-deprecated
]: improve performance ([#3271][] @golopot)no-did-mount-set-state
], [no-did-update-set-state
], [no-will-update-set-state
]: improve performance ([#3272][] @golopot)Components.detect
([#3273][] @golopot)isParenthesized
AST util ([#3203][] @Belco90)default-props-match-prop-types
, require-default-props
, sort-prop-types
: fix typos ([#3279][] @nix6839)Changelog
[7.29.4] - 2022.03.13
no-unused-state
]: avoid a crash on a class field gDSFP ([#3236][] @ljharb)boolean-prop-naming
]: handle React.FC, intersection, union types ([#3241][] @ljharb)Changelog
[7.29.3] - 2022.03.03
no-unused-state
]: avoid a crash on type-only gDSFP declarations ([#3225][] @ljharb)jsx-curly-brace-presence
]: the string "never" defaults to propElementValues
as ignore
([#3228][] @ljharb)propTypes
: add VFC
to react generic list ([#3230][] @ljharb)Changelog
[7.29.2] - 2022.02.25
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)Changelog
[7.29.1] - 2022.02.25
jsx-key
]: prevent false "missing array key" warning ([#3215][] @ljharb)jsx-indent
]: avoid checking returns sans jsx ([#3218][] @ljharb)jsx-key
]: avoid a crash ([#3220][] @ljharb)Changelog
[7.29.0] - 2022.02.24
hook-use-state
] rule to enforce symmetric useState hook variable names ([#2921][] @duncanbeevers)jsx-no-target-blank
]: Improve fixer with option allowReferrer
([#3167][] @apepper)jsx-curly-brace-presence
]: add "propElementValues" config option ([#3191][] @ljharb)iframe-missing-sandbox
] rule ([#2753][] @tosmolka @ljharb)no-did-mount-set-state
], [no-did-update-set-state
]: no-op with react >= 16.3 ([#1754][] @ljharb)jsx-sort-props
]: support multiline prop groups ([#3198][] @duhamelgm)jsx-key
]: add warnDuplicates
option to warn on duplicate jsx keys in an array ([#2614][] @ljharb)jsx-sort-props
]: add locale
option ([#3002][] @ljharb)prop-types
], propTypes
: add support for exported type inference ([#3163][] @vedadeepta)no-invalid-html-attribute
]: allow 'shortcut icon' on link
([#3174][] @Primajin)prefer-exact-props
] improve performance for Identifier
visitor ([#3190][] @meowtec)propTypes
: Handle TSTypeReference in no-unused-prop-type ([#3195][] @niik)sort-prop-types
]: avoid repeated warnings of the same node/reason ([#519][] @ljharb)jsx-indent
]: Fix indent handling for closing parentheses ([#620][] @stefanbuck])prop-types
]/propTypes
: follow a returned identifier to see if it is JSX ([#1046][] @ljharb)no-unused-state
]: TS: support getDerivedStateFromProps
as an arrow function ([#2061][] @ljharb)no-array-index-key
]: catch .toString
and String()
usage ([#2813][] @RedTn)function-component-definition
]: do not break on dollar signs ([#3207][] @ljharb)prefer-stateless-function
]: avoid a crash inside doctrine
([#2596][] @ljharb)prop-types
]: catch infinite loop ([#2861][] @ljharb)forbid-prop-types
]: properly report name in error message; check undestructured arguments ([#2945][] @ljharb)jsx-runtime
] link from branch to sha ([#3160][] @tatsushitoji)jsx-no-target-blank
]: Improve readme ([#3169][] @apepper)display-name
]: improve examples ([#3189][] @golopot)no-invalid-html-attribute
]: sort HTML_ELEMENTS and messages ([#3182][] @Primajin)forbid-foreign-prop-types
]: document allowInPropTypes
option ([#1815][] @ljharb)jsx-sort-default-props
]: remove unnecessary code ([#1817][] @ljharb)jsx-no-target-blank
]: fix syntax highlighting ([#3199][] @shamrin)jsx-key
]: improve example ([#3202][] @chnakamura)jsx-key
]: use more AST selectors (@ljharb)Changelog
[7.28.0] - 2021.12.22
function-component-definition
]: support namedComponents option being an array ([#3129][] @petersendidit)jsx-indent-props
]: Reset line.isUsingOperator
correctly after ternary ([#3146][] @tobiaswaltl)no-arrow-function-lifecycle
], [no-unused-class-component-methods
]: use report/messages convention (@ljharb)util.isReactHookCall
([#3156][] @duncanbeevers)