Filtered replace element options to avoid losing children. #5678
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.
Problem:
It's possible to define components which include their own children, but swapping a particular element with those will result in the original children of the element being lost.
Fix:
The main crux of this is just a check (in the two most appropriate places they appeared to apply) which checks if the following conditions hold:
If all of those conditions hold then the component definition is excluded from the listing.
Commit Details:
componentElementToInsertHasChildren
function.preferredChildrenForTarget
to perform the filtering which removes components that wont preserve children.getTargetParentFromInsertionTarget
function.ComponentPickerContextMenuFull
component to perform the filtering which removes components that wont preserve children.Manual Tests:
I hereby swear that:
Fixes #5650