-
Notifications
You must be signed in to change notification settings - Fork 4.6k
Fix block selection when navigation link ui is open #73368
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
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 If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message. To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
|
Size Change: +3 B (0%) Total Size: 2.49 MB
ℹ️ View Unchanged
|
getdave
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work on this Jerry 👍
Reviewing this with an eye towards inclusion in 6.9:
✅ This fix does feel like a important improvement.
✅ The scope and target area is small.
✅ I could not find any bugs.
Ideally I think we'd include as a bug fix for 6.9.
scruffian
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
|
@ellatrix I think this should be included in WP Core 6.9 release, as it is isolated and fixes a bug with block selection from navigation links with the link preview open. |
|
I just cherry-picked this PR to the wp/6.9 branch to get it included in the next release: b3f7595 |
Changes can be found at https://github.com/WordPress/gutenberg/commits/wp/6.9/. * [Fix isNewLink value with entity binding (#73368)](WordPress/gutenberg#73368) * [Unit testing: Allow Composer to auto-detect PHP version (#73358)](WordPress/gutenberg#73358) * [Move the Edit Navigation button to the last item in the block toolbar to ensure that the styling is consistent and simple (#73436)](WordPress/gutenberg#73436) * [Block Support: Change block visibility support key (#73432)](WordPress/gutenberg#73432) * [Accordion: add box-sizing:border-box rule (#73507)](WordPress/gutenberg#73507) * [Accordion Block: Trigger panel opening from URL hash or anchor link (#73357)](WordPress/gutenberg#73357) * [iAPI: Backport of "Return a deep-clone object from `getServerState` and `getServerContext` functions" (#73514)](WordPress/gutenberg#73514) * [Reuse wp_script_attributes filter for adding data-wp-router-options attribute to script module (#72489) (#73512)](WordPress/gutenberg#73512) * [Accordion Item: Don't use grid layout (#73501)](WordPress/gutenberg#73501) * [Drag and drop: remove grab cursor for multi-selection (#73521)](WordPress/gutenberg#73521) * [Math block: fix accessibility (#73508)](WordPress/gutenberg#73508) * [iAPI: Fix using `getServerContext` in derived state getters (#73518) (#73531)](WordPress/gutenberg#73531) * [Drag: hide block tools popovers (#73539)](WordPress/gutenberg#73539) Developed in #10549. See https://make.wordpress.org/core/handbook/about/release-cycle/block-editor-release-process-for-major-releases/#package-updates-and-core-patches. Props priethor. See #64301. git-svn-id: https://develop.svn.wordpress.org/branches/6.9@61304 602fd350-edb4-49c9-b593-d223f7449a82
Changes can be found at https://github.com/WordPress/gutenberg/commits/wp/6.9/. * [Fix isNewLink value with entity binding (#73368)](WordPress/gutenberg#73368) * [Unit testing: Allow Composer to auto-detect PHP version (#73358)](WordPress/gutenberg#73358) * [Move the Edit Navigation button to the last item in the block toolbar to ensure that the styling is consistent and simple (#73436)](WordPress/gutenberg#73436) * [Block Support: Change block visibility support key (#73432)](WordPress/gutenberg#73432) * [Accordion: add box-sizing:border-box rule (#73507)](WordPress/gutenberg#73507) * [Accordion Block: Trigger panel opening from URL hash or anchor link (#73357)](WordPress/gutenberg#73357) * [iAPI: Backport of "Return a deep-clone object from `getServerState` and `getServerContext` functions" (#73514)](WordPress/gutenberg#73514) * [Reuse wp_script_attributes filter for adding data-wp-router-options attribute to script module (#72489) (#73512)](WordPress/gutenberg#73512) * [Accordion Item: Don't use grid layout (#73501)](WordPress/gutenberg#73501) * [Drag and drop: remove grab cursor for multi-selection (#73521)](WordPress/gutenberg#73521) * [Math block: fix accessibility (#73508)](WordPress/gutenberg#73508) * [iAPI: Fix using `getServerContext` in derived state getters (#73518) (#73531)](WordPress/gutenberg#73531) * [Drag: hide block tools popovers (#73539)](WordPress/gutenberg#73539) Developed in WordPress/wordpress-develop#10549. See https://make.wordpress.org/core/handbook/about/release-cycle/block-editor-release-process-for-major-releases/#package-updates-and-core-patches. Props priethor. See #64301. Built from https://develop.svn.wordpress.org/branches/6.9@61304 git-svn-id: http://core.svn.wordpress.org/branches/6.9@60616 1a063a9b-81f0-0310-95a4-ce76da25c4cd
What?
Closes #73178
With the addition of entity binding for navigation links, there are issues with how isNewLink gets set, which breaks the UX flow for popovers and block selection when popovers close. Anytime the link popover closes, it will always return focus back to the navigation link instead of respecting block selection.
Why?
Fixes serious UX issues with block selection
How?
Before entity bindings, we would determine if we were working with a new link or not with:
isNewLink = useRef( ! url ). If we didn't have a url, we were working with a new link and used the UX states for that. Now, if a navigation link is bound to an entity, it initially loads withurl = nullwhile the block bindings are resolving their values. This means, all blocks end up being considered isNewLink = true.To fix this, we also need to check to see if there are block bindings for the block, and if so, don't consider this a new link.
Testing Instructions
Try this for various navigation block types: Synced, unsynced, invalid, custom...
Testing Instructions for Keyboard
Screenshots or screencast
Before
Screen.Recording.2025-11-17.at.2.38.38.PM.mov
After
Screen.Recording.2025-11-17.at.2.39.32.PM.mov