From 6edcde7755a91aee7984026df7d1717bd368889e Mon Sep 17 00:00:00 2001 From: ramon Date: Tue, 3 Sep 2024 12:58:06 +1000 Subject: [PATCH] Don't show group toolbar if one or more selected blocks are content locked. --- .../src/components/block-toolbar/index.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/block-editor/src/components/block-toolbar/index.js b/packages/block-editor/src/components/block-toolbar/index.js index 95e94d65ead102..fdf51303241815 100644 --- a/packages/block-editor/src/components/block-toolbar/index.js +++ b/packages/block-editor/src/components/block-toolbar/index.js @@ -67,6 +67,7 @@ export function PrivateBlockToolbar( { showParentSelector, isUsingBindings, canRemove, + selectedHasTemplateLock, } = useSelect( ( select ) => { const { getBlockName, @@ -100,8 +101,10 @@ export function PrivateBlockToolbar( { ( clientId ) => !! getBlockAttributes( clientId )?.metadata?.bindings ); - // @TODO If a selected block is locked, we should not show the BlockGroupToolbar. - + // If one or more selected blocks re locked, do not show the BlockGroupToolbar. + const _hasTemplateLock = selectedBlockClientIds.some( + ( id ) => getTemplateLock( id ) === 'contentOnly' + ); return { blockClientId: selectedBlockClientId, blockClientIds: selectedBlockClientIds, @@ -123,6 +126,7 @@ export function PrivateBlockToolbar( { _isDefaultEditingMode, isUsingBindings: _isUsingBindings, canRemove: canRemoveBlock( selectedBlockClientId ), + selectedHasTemplateLock: _hasTemplateLock, }; }, [] ); @@ -208,9 +212,9 @@ export function PrivateBlockToolbar( { { ! isMultiToolbar && canRemove && ( ) } - { shouldShowVisualToolbar && isMultiToolbar && ( - - ) } + { ! selectedHasTemplateLock && + shouldShowVisualToolbar && + isMultiToolbar && } { shouldShowVisualToolbar && ( <>