From c40282dd1f637ea673740f5a352aceee3993bf49 Mon Sep 17 00:00:00 2001 From: Donna Peplinskie Date: Wed, 19 May 2021 08:40:21 -0400 Subject: [PATCH 1/2] Fix toolbar alignment in widget block editor --- .../block-tools/block-contextual-toolbar.js | 47 ++++++++++++------- 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/packages/block-editor/src/components/block-tools/block-contextual-toolbar.js b/packages/block-editor/src/components/block-tools/block-contextual-toolbar.js index f08341a191fa08..45385cc0dfa06c 100644 --- a/packages/block-editor/src/components/block-tools/block-contextual-toolbar.js +++ b/packages/block-editor/src/components/block-tools/block-contextual-toolbar.js @@ -18,22 +18,35 @@ import BlockToolbar from '../block-toolbar'; import { store as blockEditorStore } from '../../store'; function BlockContextualToolbar( { focusOnMount, isFixed, ...props } ) { - const { blockType, hasParents } = useSelect( ( select ) => { - const { - getBlockName, - getBlockParents, - getSelectedBlockClientIds, - } = select( blockEditorStore ); - const { getBlockType } = select( blocksStore ); - const selectedBlockClientIds = getSelectedBlockClientIds(); - const selectedBlockClientId = selectedBlockClientIds[ 0 ]; - return { - blockType: - selectedBlockClientId && - getBlockType( getBlockName( selectedBlockClientId ) ), - hasParents: getBlockParents( selectedBlockClientId ).length, - }; - }, [] ); + const { blockType, hasParents, showParentSelector } = useSelect( + ( select ) => { + const { + getBlockName, + getBlockParents, + getSelectedBlockClientIds, + } = select( blockEditorStore ); + const { getBlockType } = select( blocksStore ); + const selectedBlockClientIds = getSelectedBlockClientIds(); + const selectedBlockClientId = selectedBlockClientIds[ 0 ]; + const parents = getBlockParents( selectedBlockClientId ); + const firstParentClientId = parents[ parents.length - 1 ]; + const parentBlockName = getBlockName( firstParentClientId ); + const parentBlockType = getBlockType( parentBlockName ); + + return { + blockType: + selectedBlockClientId && + getBlockType( getBlockName( selectedBlockClientId ) ), + hasParents: getBlockParents( selectedBlockClientId ).length, + showParentSelector: hasBlockSupport( + parentBlockType, + '__experimentalParentSelector', + true + ), + }; + }, + [] + ); if ( blockType ) { if ( ! hasBlockSupport( blockType, '__experimentalToolbar', true ) ) { return null; @@ -42,7 +55,7 @@ function BlockContextualToolbar( { focusOnMount, isFixed, ...props } ) { // Shifts the toolbar to make room for the parent block selector. const classes = classnames( 'block-editor-block-contextual-toolbar', { - 'has-parent': hasParents, + 'has-parent': hasParents && showParentSelector, 'is-fixed': isFixed, } ); From 81e328d946d4b654f7574ab386885c05e848a04c Mon Sep 17 00:00:00 2001 From: Donna Peplinskie Date: Tue, 25 May 2021 10:19:46 -0400 Subject: [PATCH 2/2] Update packages/block-editor/src/components/block-tools/block-contextual-toolbar.js Co-authored-by: Robert Anderson --- .../src/components/block-tools/block-contextual-toolbar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/block-editor/src/components/block-tools/block-contextual-toolbar.js b/packages/block-editor/src/components/block-tools/block-contextual-toolbar.js index 45385cc0dfa06c..a8e55abe6f408b 100644 --- a/packages/block-editor/src/components/block-tools/block-contextual-toolbar.js +++ b/packages/block-editor/src/components/block-tools/block-contextual-toolbar.js @@ -37,7 +37,7 @@ function BlockContextualToolbar( { focusOnMount, isFixed, ...props } ) { blockType: selectedBlockClientId && getBlockType( getBlockName( selectedBlockClientId ) ), - hasParents: getBlockParents( selectedBlockClientId ).length, + hasParents: parents.length, showParentSelector: hasBlockSupport( parentBlockType, '__experimentalParentSelector',