jsx-eslint/eslint-plugin-react

[Bug]: jsx-curly-brace-presence incorrectly removes `{""}` used for whitespace preservation

Open

#3995 opened on Mar 26, 2026

View on GitHub
 (3 comments) (0 reactions) (0 assignees)JavaScript (8,630 stars) (2,797 forks)batch import
bughelp wanted

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

Contributor guide