fix(overlays): fix an edge case in hiding outside elements #9365
+77
−2
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.
When working with WYSIWYG editors or similar components that mutate the dom, the order of dom mutations could be in a way that the mutation observer is called with mutation records for nodes that are no longer in the dom, but have children inside the visible element. More specifically, when an element is reparented during the dom mutations, the mutation record with the old parent still appears in the list of changes, resulting in a change where
change.targetis not connected to the document, but it containsaddedNodesthat are connected (to a new parent) and should not be hidden.This change adds a safe-guard for such cases, by checking if the target element is connected, as otherwise it will be considered outside the currently visible elements.
Closes #9364
✅ Pull Request Checklist:
📝 Test Instructions:
🧢 Your Project: