Skip to content

Commit 628a4a0

Browse files
tanmoyopenrootljharb
authored andcommitted
[fix] jsx-curly-brace-presence: fix jsx tags in braces
1 parent 3124ce0 commit 628a4a0

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

lib/rules/jsx-curly-brace-presence.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,10 @@ module.exports = {
128128
expression.quasis[0].value.raw :
129129
expression.raw.substring(1, expression.raw.length - 1)
130130
}"`;
131+
} else if (jsxUtil.isJSX(expression)) {
132+
const sourceCode = context.getSourceCode();
133+
134+
textToReplace = sourceCode.getText(expression);
131135
} else {
132136
textToReplace = expressionType === 'TemplateLiteral' ?
133137
expression.quasis[0].value.cooked : expression.value;
@@ -190,6 +194,8 @@ module.exports = {
190194
)
191195
) {
192196
reportUnnecessaryCurly(JSXExpressionNode);
197+
} else if (jsxUtil.isJSX(expression)) {
198+
reportUnnecessaryCurly(JSXExpressionNode);
193199
}
194200
}
195201

tests/lib/rules/jsx-curly-brace-presence.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,8 @@ ruleTester.run('jsx-curly-brace-presence', rule, {
9696
options: [{props: 'never'}]
9797
},
9898
{
99-
code: '<App>{<myApp></myApp>}</App>'
99+
code: '<App>{<myApp></myApp>}</App>',
100+
options: [{children: 'always'}]
100101
},
101102
{
102103
code: '<App>{[]}</App>'
@@ -313,6 +314,17 @@ ruleTester.run('jsx-curly-brace-presence', rule, {
313314
options: [{props: 'never'}],
314315
errors: [{message: unnecessaryCurlyMessage}]
315316
},
317+
{
318+
code: '<App>{<myApp></myApp>}</App>',
319+
output: '<App><myApp></myApp></App>',
320+
options: [{children: 'never'}],
321+
errors: [{message: unnecessaryCurlyMessage}]
322+
},
323+
{
324+
code: '<App>{<myApp></myApp>}</App>',
325+
output: '<App><myApp></myApp></App>',
326+
errors: [{message: unnecessaryCurlyMessage}]
327+
},
316328
{
317329
code: '<App prop={`foo`}>foo</App>',
318330
output: '<App prop="foo">foo</App>',

0 commit comments

Comments
 (0)