[lexical-react] fix: ensure attributes are set immediately on menu #7237
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
With the changes introduced in Lexical 0.25.0 (notably #7181 and #7164), the menu now renders immediately. However, this has led to two issues:
1. Missing attributes on initial render
The menu container
<div>
is rendered before its attributes are assigned. As a result:anchorClassName
are not applied immediately, causing visibility issues. The attributes only appear after the user makes further inputs. In my case, the menu is covered by a dialog because thez-index
from my custom class is not applied initially.role
andaria-label
, make automated testing more difficult.2. Persistent DOM Element (not addressed in this PR)
The menu container
<div>
remains in the DOM even when the menu is closed. This can lead to duplicate IDs, potentially causing accessibility and testing issues.Fix in This PR
This PR ensures that all attributes are correctly assigned as soon as the menu is rendered.
Before
After