diff --git a/packages/block-editor/src/autocompleters/block.js b/packages/block-editor/src/autocompleters/block.js index 859ae11036c82a..5fc107c4d3d69e 100644 --- a/packages/block-editor/src/autocompleters/block.js +++ b/packages/block-editor/src/autocompleters/block.js @@ -6,6 +6,7 @@ import { createBlock, createBlocksFromInnerBlocksTemplate, parse, + store as blocksStore, } from '@wordpress/blocks'; import { useMemo } from '@wordpress/element'; @@ -36,22 +37,30 @@ function createBlockCompleter() { triggerPrefix: '/', useItems( filterValue ) { - const { rootClientId, selectedBlockName, prioritizedBlocks } = + const { rootClientId, selectedBlockId, prioritizedBlocks } = useSelect( ( select ) => { const { getSelectedBlockClientId, - getBlockName, + getBlock, getBlockListSettings, getBlockRootClientId, } = select( blockEditorStore ); + const { getActiveBlockVariation } = select( blocksStore ); const selectedBlockClientId = getSelectedBlockClientId(); + const { name: blockName, attributes } = getBlock( + selectedBlockClientId + ); + const activeBlockVariation = getActiveBlockVariation( + blockName, + attributes + ); const _rootClientId = getBlockRootClientId( selectedBlockClientId ); return { - selectedBlockName: selectedBlockClientId - ? getBlockName( selectedBlockClientId ) - : null, + selectedBlockId: activeBlockVariation + ? `${ blockName }/${ activeBlockVariation.name }` + : blockName, rootClientId: _rootClientId, prioritizedBlocks: getBlockListSettings( _rootClientId ) @@ -78,11 +87,11 @@ function createBlockCompleter() { ); return initialFilteredItems - .filter( ( item ) => item.name !== selectedBlockName ) + .filter( ( item ) => item.id !== selectedBlockId ) .slice( 0, SHOWN_BLOCK_TYPES ); }, [ filterValue, - selectedBlockName, + selectedBlockId, items, categories, collections,