UNPKG

eslint-plugin-reblend

Version:

Reblend specific linting rules for ESLint

84 lines (54 loc) • 1.48 kB
# Disallow unnecessary fragments (`reblend/jsx-no-useless-fragment`) šŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). <!-- end auto-generated rule header --> A fragment is redundant if it contains only one child, or if it is the child of a html element, and is not a [keyed fragment](https://reblendjs.org/docs/fragments.html#keyed-fragments). ## Rule Details Examples of **incorrect** code for this rule: ```jsx <>{foo}</> <><Foo /></> <p><>foo</></p> <></> <Fragment>foo</Fragment> <Reblend.Fragment>foo</Reblend.Fragment> <section> <> <div /> <div /> </> </section> {showFullName ? <>{fullName}</> : <>{firstName}</>} ``` Examples of **correct** code for this rule: ```jsx {foo} <Foo /> <> <Foo /> <Bar /> </> <>foo {bar}</> <> {foo}</> const cat = <>meow</> <SomeComponent> <> <div /> <div /> </> </SomeComponent> <Fragment key={item.id}>{item.value}</Fragment> {showFullName ? fullName : firstName} ``` ## Rule Options ### `allowExpressions` When `true` single expressions in a fragment will be allowed. This is useful in places like Typescript where `string` does not satisfy the expected return type of `JSX.Element`. A common workaround is to wrap the variable holding a string in a fragment and expression. Examples of **correct** code for the rule, when `"allowExpressions"` is `true`: ```jsx <>{foo}</> <> {foo} </> ```