Patterns: Don't override the rootClientID in create menu - only set if undefined#52713
Patterns: Don't override the rootClientID in create menu - only set if undefined#52713glendaviesnz merged 2 commits intotrunkfrom
Conversation
@noisysocks in relation to the above comment made here, in my testing it seems that when selecting across container blocks it is the top-level containers that are passed in as the selected block ids, which then by nature have the same parent id so it seems like |
|
Size Change: +978 B (0%) Total Size: 1.43 MB
ℹ️ View Unchanged
|
| export default function ReusableBlocksMenuItems( { rootClientId } ) { | ||
| const clientIds = useSelect( ( select ) => | ||
| select( blockEditorStore ).getSelectedBlockClientIds() | ||
| ); |
There was a problem hiding this comment.
Should pass [] as the deps for useSelect here. Annoyingly it doesn't default to [].
There was a problem hiding this comment.
thanks, fixed, we should have a lint rule for that.
| const rootId = | ||
| rootClientId || clientIds.length > 0 | ||
| ? getBlockRootClientId( clientIds[ 0 ] ) | ||
| : undefined; |
There was a problem hiding this comment.
This is wrong, no? It will call getBlockRootClientId if rootClientId is truthy. I think you need parens around the right hand side of the ||.
const rootId = rootClientId || ( clientIds.length > 0 ? getBlockRootClientId( clientIds[ 0 ] ) : undefined );There was a problem hiding this comment.
🤦 should have stuck with the nested ternary I first had, it was easier to grok 😄 It works as expected when properly bracketed and have updated, but I wonder if something like the following is clearer for our future selves and not much more verbose 🤔 :
let rootId;
if ( rootClientId ) {
rootId = rootClientId;
} else if ( clientIds.length > 0 ) {
rootId = getBlockRootClientId( clientIds[ 0 ] );
}
noisysocks
left a comment
There was a problem hiding this comment.
Thanks for looking into this!
|
For future reference this was a bug fix for #52671 which had potentially broken the menu for any plugin that was passing |
|
I just cherry-picked this PR to the update/packages-RC2 branch to get it included in the next release: 88e1896 |
* Filter out patterns that are not allowed in the inserter (#52675) * Remove autofocus and improve placeholder text consistency. (#52634) * Do not navigate to the styles pages unless you're in a random listing page (#52728) * Patterns: Don't override the rootClientID in create menu - only set if undefined (#52713) * Footnotes: store in revisions (#52686) * Fix: Block toolbar obscuring document tools when Top Toolbar is enabled (#52722) * Update toolbar width * Site editor needs specific width * fixes top toolbar width for post editor when not in fullscreen * remove the body rule --------- Co-authored-by: Andrei Draganescu <andrei.draganescu@automattic.com> * Site Editor: Fix site link accessibility issues (#52744) * Add id to pattern inserted notice to stop multiple notices stacking (#52746) * Global Styles: Don't use named arguments for 'sprintf' (#52782) * Footnotes: Use static closures when not using '' (#52781) * removes check for active preview device type to enable the fixed toolbar preference (#52770) * Parser / Site Editor: Ensure autop is not run when freeform block is set to core/html (#52716) * Parse / Site Editor: Ensure autop is not run when freeform block is set to core/html * Switch to equals freeform instead of not equals core/html * Rename core/test-freeform to core/freeform in tests * Adding @SInCE annotation for relevant 6.3 changes. (#52820) * Navigation: Load the raw property on the navigation fallback (#52758) * Navigation: Load the raw property on the navigation fallback * Update lib/compat/wordpress-6.3/navigation-fallback.php Co-authored-by: Dave Smith <getdavemail@gmail.com> * Update lib/compat/wordpress-6.3/navigation-fallback.php Co-authored-by: Dave Smith <getdavemail@gmail.com> * Add a test for these properties * Update phpunit/class-gutenberg-rest-navigation-fallback-controller-test.php Co-authored-by: Dave Smith <getdavemail@gmail.com> * Update phpunit/class-gutenberg-rest-navigation-fallback-controller-test.php Co-authored-by: Dave Smith <getdavemail@gmail.com> * Update phpunit/class-gutenberg-rest-navigation-fallback-controller-test.php Co-authored-by: Dave Smith <getdavemail@gmail.com> * Update phpunit/class-gutenberg-rest-navigation-fallback-controller-test.php Co-authored-by: Dave Smith <getdavemail@gmail.com> * Update phpunit/class-gutenberg-rest-navigation-fallback-controller-test.php Co-authored-by: Dave Smith <getdavemail@gmail.com> * Update phpunit/class-gutenberg-rest-navigation-fallback-controller-test.php Co-authored-by: Dave Smith <getdavemail@gmail.com> * Update phpunit/class-gutenberg-rest-navigation-fallback-controller-test.php Co-authored-by: Dave Smith <getdavemail@gmail.com> * Update phpunit/class-gutenberg-rest-navigation-fallback-controller-test.php Co-authored-by: Dave Smith <getdavemail@gmail.com> * Update phpunit/class-gutenberg-rest-navigation-fallback-controller-test.php Co-authored-by: Dave Smith <getdavemail@gmail.com> * add more comments * add necessary method * Fix php coding standards error --------- Co-authored-by: Dave Smith <getdavemail@gmail.com> Co-authored-by: Jerry Jones <jones.jeremydavid@gmail.com> * Allow styles to be changed dynamically through editor settings (#52767) * ResizableFrame: Fix styling in Firefox (#52700) * ResizableFrame: Fix styling in Firefox * Remove unused class * Patterns: Fix empty general template parts category (#52747) --------- Co-authored-by: Glen Davies <glen.davies@automattic.com> --------- Co-authored-by: Carolina Nymark <myazalea@hotmail.com> Co-authored-by: Andrea Fercia <a.fercia@gmail.com> Co-authored-by: Riad Benguella <benguella@gmail.com> Co-authored-by: Glen Davies <glendaviesnz@users.noreply.github.com> Co-authored-by: Ella <4710635+ellatrix@users.noreply.github.com> Co-authored-by: James Koster <james@jameskoster.co.uk> Co-authored-by: Andrei Draganescu <andrei.draganescu@automattic.com> Co-authored-by: George Mamadashvili <georgemamadashvili@gmail.com> Co-authored-by: Andrei Draganescu <me@andreidraganescu.info> Co-authored-by: Andrew Serong <14988353+andrewserong@users.noreply.github.com> Co-authored-by: Ramon <ramonjd@users.noreply.github.com> Co-authored-by: Ben Dwyer <ben@scruffian.com> Co-authored-by: Dave Smith <getdavemail@gmail.com> Co-authored-by: Jerry Jones <jones.jeremydavid@gmail.com> Co-authored-by: Lena Morita <lena@jaguchi.com> Co-authored-by: Kai Hao <kevin830726@gmail.com> Co-authored-by: Glen Davies <glen.davies@automattic.com>
What?
Removes the withSelect override of rootClientId added in #52671. Also refactors withSelect to useSelect
Why?
This rootClientId could be passed in by other components/plugins
How?
Only set the rootId in the menu component if the prop is not set.
Testing Instructions
Create patternmenu appears and works as expectedCreate patternmenu works as expected in the post editor still, and that create pattern menu does not appear in widget editorScreenshots or screencast
reusable-site-editor.mp4