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 && (
<>