Skip to content

Commit 63b7785

Browse files
committed
[Fix] jsx-no-leaked-render: removing parentheses for conditionals fixed
1 parent a60f04d commit 63b7785

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

lib/rules/jsx-no-leaked-render.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,9 @@ function ruleFixer(context, fixStrategy, fixer, reportedNode, leftNode, rightNod
6464
return `${getIsCoerceValidNestedLogicalExpression(node) ? '' : '!!'}${nodeText}`;
6565
}).join(' && ');
6666

67+
if (rightNode.type === 'ConditionalExpression') {
68+
return fixer.replaceText(reportedNode, `${newText} && (${rightSideText})`);
69+
}
6770
return fixer.replaceText(reportedNode, `${newText} && ${rightSideText}`);
6871
}
6972

tests/lib/rules/jsx-no-leaked-render.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -829,5 +829,23 @@ ruleTester.run('jsx-no-leaked-render', rule, {
829829
column: 24,
830830
}],
831831
},
832+
{
833+
code: `
834+
const MyComponent = () => {
835+
return <div>{maybeObject && (isFoo ? <Aaa /> : <Bbb />)}</div>
836+
}
837+
`,
838+
output: `
839+
const MyComponent = () => {
840+
return <div>{!!maybeObject && (isFoo ? <Aaa /> : <Bbb />)}</div>
841+
}
842+
`,
843+
options: [{ validStrategies: ['coerce'] }],
844+
errors: [{
845+
message: 'Potential leaked value that might cause unintentionally rendered values or rendering crashes',
846+
line: 3,
847+
column: 24,
848+
}],
849+
},
832850
]),
833851
});

0 commit comments

Comments
 (0)