Skip to content

[Bug]: react/jsx-newline does not remove empty lines for surrounding tags #3663

Open
@sspenst

Description

@sspenst

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

react/jsx-newline with { "prevent": true } does not remove empty lines for surrounding tags.

Currently react/jsx-newline does not detect any lint errors for the following JSX:

<div>

  <span>
    hi
  </span>

</div>

Expected Behavior

The current detection feels like unintended behavior, as I would expect all newlines within JSX to be removed as follows:

<div>
  <span>
    hi
  </span>
</div>

If there is a different eslint rule that checks for this please let me know!

eslint-plugin-react version

v7.33.2

eslint version

v8.55.0

node version

v18.6.0

Activity

changed the title [-][Bug]: [/-] [+][Bug]: `react/jsx-newline` does not remove empty lines for surrounding tags[/+] on Dec 6, 2023
burtek

burtek commented on Jan 11, 2024

@burtek
Contributor

Works as expected? The rule adds/removed newlines between adjacent JSX elements and expressions.

That being said, it might be reasonable to add option to also check newlines at start and end of element's children 🤔

@ljharb

ljharb

ljharb commented on Jan 11, 2024

@ljharb
Member

I think it's a reasonable interpretation that <div> and <span> are adjacent lexically, even if they're not adjacent hierarchically, and newlines are a lexical concern.

To avoid a breaking change, we'd need to add a new option for this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Participants

      @ljharb@burtek@sspenst

      Issue actions

        [Bug]: `react/jsx-newline` does not remove empty lines for surrounding tags · Issue #3663 · jsx-eslint/eslint-plugin-react