diff --git a/packages/block-editor/src/components/block-toolbar/index.js b/packages/block-editor/src/components/block-toolbar/index.js
index b14ceb5059049..aa1d00b79fb1d 100644
--- a/packages/block-editor/src/components/block-toolbar/index.js
+++ b/packages/block-editor/src/components/block-toolbar/index.js
@@ -66,6 +66,7 @@ export function PrivateBlockToolbar( {
showParentSelector,
isUsingBindings,
hasParentPattern,
+ selectedHasTemplateLock,
} = useSelect( ( select ) => {
const {
getBlockName,
@@ -76,6 +77,7 @@ export function PrivateBlockToolbar( {
getBlockEditingMode,
getBlockAttributes,
getBlockParentsByBlockName,
+ getTemplateLock,
} = select( blockEditorStore );
const selectedBlockClientIds = getSelectedBlockClientIds();
const selectedBlockClientId = selectedBlockClientIds[ 0 ];
@@ -103,6 +105,10 @@ export function PrivateBlockToolbar( {
.length > 0
);
+ // 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 +129,7 @@ export function PrivateBlockToolbar( {
_isDefaultEditingMode,
isUsingBindings: _isUsingBindings,
hasParentPattern: _hasParentPattern,
+ selectedHasTemplateLock: _hasTemplateLock,
};
}, [] );
@@ -205,9 +212,9 @@ export function PrivateBlockToolbar( {
) }
- { shouldShowVisualToolbar && isMultiToolbar && (
-
- ) }
+ { ! selectedHasTemplateLock &&
+ shouldShowVisualToolbar &&
+ isMultiToolbar && }
{ shouldShowVisualToolbar && (
<>