You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
PR fixes stale values for insertion point references, which happens when BlockPopoverInbetween unmounts its children.
Why?
Between blocks insertion point, use a special reference (openRef.current) flag to avoid triggering other insertion points, while Quick Inserter is open. Its value is set to true when an inserter is open and resets to default (false) on close.
When you scroll down on a large editor canvas, and the relative blocks for the insertion point get hidden, the editor triggers optimizations to hide unnecessary components.
The BlockPopoverInbetween will unmount its children , which results in a stale openRef flag, since Popovers don't trigger onClose callback during unmount.
How?
Use a ref callback and reset the reference when the Inserter component unmounts. A bit of a hacky solution, but I couldn't think of anything better without making a breaking change to popovers.
Testing Instructions
Open a post.
Add 20-30 group blocks.
Open the in-between inserter at the top.
Scroll down so that the inserter is hidden.
Try opening another in-between inserter.
It should work on this branch, but fails on trunk.
Flaky tests detected in 1d58322.
Some tests passed with failed attempts. The failures may not be related to this commit but are still reported for visibility. See the documentation for more information.
The BlockPopoverInbetween will unmount its children , which results in a stale openRef flag, since Popovers don't trigger onClose callback during unmount.
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.
Unlinked Accounts
The following contributors have not linked their GitHub and WordPress.org accounts: @CreativeDive.
@jeryj, unfortunately, that doesn’t fix this case, there’s no “blur” or “focus outside”. The popover unmounts because of parent component’s render condition.
[Feature] InserterThe main way to insert blocks using the + button in the editing interface[Type] BugAn existing feature does not function as intended
3 participants
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.
What?
Closes #65598.
PR fixes stale values for insertion point references, which happens when
BlockPopoverInbetween
unmounts its children.Why?
openRef.current
) flag to avoid triggering other insertion points, while Quick Inserter is open. Its value is set totrue
when an inserter is open and resets to default (false
) on close.BlockPopoverInbetween
will unmount its children , which results in a staleopenRef
flag, since Popovers don't triggeronClose
callback during unmount.How?
Use a ref callback and reset the reference when the
Inserter
component unmounts. A bit of a hacky solution, but I couldn't think of anything better without making a breaking change to popovers.Testing Instructions
Testing Instructions for Keyboard
Same
Screenshots or screencast
CleanShot.2025-09-09.at.09.45.17.mp4