diff --git a/packages/block-editor/src/components/block-inspector/index.js b/packages/block-editor/src/components/block-inspector/index.js index 6bbd28f85ee9e..59976ed860c5a 100644 --- a/packages/block-editor/src/components/block-inspector/index.js +++ b/packages/block-editor/src/components/block-inspector/index.js @@ -9,6 +9,7 @@ import { } from '@wordpress/blocks'; import { PanelBody, __unstableMotion as motion } from '@wordpress/components'; import { useSelect } from '@wordpress/data'; +import { useMemo } from '@wordpress/element'; /** * Internal dependencies @@ -34,37 +35,36 @@ import { unlock } from '../../lock-unlock'; function BlockStylesPanel( { clientId } ) { return ( -
- - - -
+ + + ); } function BlockInspectorLockedBlocks( { topLevelLockedBlock } ) { + const { getBlockName, getBlockEditingMode } = useSelect( blockEditorStore ); const { contentClientIds, hasBlockStyles } = useSelect( ( select ) => { - const { - getClientIdsOfDescendants, - getBlockName, - getBlockEditingMode, - } = select( blockEditorStore ); + const { getClientIdsOfDescendants } = select( blockEditorStore ); const { getBlockStyles } = select( blocksStore ); return { - contentClientIds: getClientIdsOfDescendants( - topLevelLockedBlock - ).filter( - ( clientId ) => - getBlockName( clientId ) !== 'core/list-item' && - getBlockEditingMode( clientId ) === 'contentOnly' - ), + contentClientIds: + getClientIdsOfDescendants( topLevelLockedBlock ), hasBlockStyles: !! getBlockStyles( getBlockName( topLevelLockedBlock ) )?.length, }; }, - [ topLevelLockedBlock ] + [ topLevelLockedBlock, getBlockName ] + ); + const eligibleContentClientIds = useMemo( + () => + contentClientIds.filter( + ( clientId ) => + getBlockName( clientId ) !== 'core/list-item' && + getBlockEditingMode( clientId ) === 'contentOnly' + ), + [ contentClientIds, getBlockName, getBlockEditingMode ] ); const blockInformation = useBlockDisplayInformation( topLevelLockedBlock ); return ( @@ -78,9 +78,11 @@ function BlockInspectorLockedBlocks( { topLevelLockedBlock } ) { { hasBlockStyles && ( ) } - { contentClientIds.length > 0 && ( + { eligibleContentClientIds.length > 0 && ( - + ) }