-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Open
Labels
Description
Is there an existing issue for this?
- I have searched the existing issues and my issue is unique
- My issue appears in the command-line and not only in the text editor
Description Overview
In some scenarios where {""} is used for whitespace preservation, jsx-curly-brace-presence incorrectly flags the braces as unnecessary, and --fix introduces a visual regression.
export default function App() {
return (
<span>
<span>The braces</span>
{""} matter here.
</span>
);
}
Applying "react/jsx-curly-brace-presence": ["error", { "children": "never" }] to this block causes
5:7 error Curly braces are unnecessary here react/jsx-curly-brace-presence
This is incorrect, since the {""} preserves the whitespace between "braces" and "matter". Additionally, eslint --fix leads to
export default function App() {
return (
<span>
<span>The braces</span>
matter here.
</span>
);
}
which is a visual regression: "The braces matter here." becomes "The bracesmatter here.".
Expected Behavior
jsx-curly-brace-presence should not flag curly braces that are serving a purpose, and eslint --fix should never introduce behavior regressions.
eslint-plugin-react version
v7.37.5
eslint version
v9.39.4
node version
v25.8.0
Reactions are currently unavailable