From 94e2467b010ac3559333bc7b8984a775da55bde2 Mon Sep 17 00:00:00 2001
From: Morgane <117099906+mfigard@users.noreply.github.com>
Date: Wed, 17 Sep 2025 13:23:41 +0200
Subject: [PATCH 1/2] [Fix] catch JSX fragments with propElementValues
---
lib/rules/jsx-curly-brace-presence.js | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/lib/rules/jsx-curly-brace-presence.js b/lib/rules/jsx-curly-brace-presence.js
index 0f17143ffa..5bc3b744db 100755
--- a/lib/rules/jsx-curly-brace-presence.js
+++ b/lib/rules/jsx-curly-brace-presence.js
@@ -405,13 +405,19 @@ module.exports = {
}
},
+ 'JSXAttribute > JSXExpressionContainer > JSXFragment'(node) {
+ if (userConfig.propElementValues === OPTION_NEVER) {
+ reportUnnecessaryCurly(node.parent);
+ }
+ },
+
JSXExpressionContainer(node) {
if (shouldCheckForUnnecessaryCurly(node, userConfig)) {
lintUnnecessaryCurly(node);
}
},
- 'JSXAttribute > JSXElement, Literal, JSXText'(node) {
+ 'JSXAttribute > JSXElement, JSXAttribute > JSXFragment, Literal, JSXText'(node) {
if (shouldCheckForMissingCurly(node, userConfig)) {
reportMissingCurly(node);
}
From 4a076f75b01aeb824a17d6c14560528566162826 Mon Sep 17 00:00:00 2001
From: Morgane <117099906+mfigard@users.noreply.github.com>
Date: Wed, 17 Sep 2025 13:37:36 +0200
Subject: [PATCH 2/2] Add tests for JSX fragments
---
tests/lib/rules/jsx-curly-brace-presence.js | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/tests/lib/rules/jsx-curly-brace-presence.js b/tests/lib/rules/jsx-curly-brace-presence.js
index 59d756737b..671afc0bb3 100755
--- a/tests/lib/rules/jsx-curly-brace-presence.js
+++ b/tests/lib/rules/jsx-curly-brace-presence.js
@@ -932,6 +932,13 @@ ruleTester.run('jsx-curly-brace-presence', rule, {
output: `} />`,
errors: [{ messageId: 'missingCurly' }],
},
+ {
+ code: `> />`,
+ options: [{ props: 'always', children: 'always', propElementValues: 'always' }],
+ features: ['no-ts'],
+ output: `>} />`,
+ errors: [{ messageId: 'missingCurly' }],
+ },
{
code: `} />`,
options: [{ props: 'never', children: 'never', propElementValues: 'never' }],
@@ -939,6 +946,13 @@ ruleTester.run('jsx-curly-brace-presence', rule, {
output: ` />`,
errors: [{ messageId: 'unnecessaryCurly' }],
},
+ {
+ code: `>} />`,
+ options: [{ props: 'never', children: 'never', propElementValues: 'never' }],
+ features: ['no-ts'],
+ output: `> />`,
+ errors: [{ messageId: 'unnecessaryCurly' }],
+ },
{
code: ``,
options: [{ props: 'never', children: 'never', propElementValues: 'never' }],