6
6
createBlock ,
7
7
createBlocksFromInnerBlocksTemplate ,
8
8
parse ,
9
+ store as blocksStore ,
9
10
} from '@wordpress/blocks' ;
10
11
import { useMemo } from '@wordpress/element' ;
11
12
@@ -36,22 +37,30 @@ function createBlockCompleter() {
36
37
triggerPrefix : '/' ,
37
38
38
39
useItems ( filterValue ) {
39
- const { rootClientId, selectedBlockName , prioritizedBlocks } =
40
+ const { rootClientId, selectedBlockId , prioritizedBlocks } =
40
41
useSelect ( ( select ) => {
41
42
const {
42
43
getSelectedBlockClientId,
43
- getBlockName ,
44
+ getBlock ,
44
45
getBlockListSettings,
45
46
getBlockRootClientId,
46
47
} = select ( blockEditorStore ) ;
48
+ const { getActiveBlockVariation } = select ( blocksStore ) ;
47
49
const selectedBlockClientId = getSelectedBlockClientId ( ) ;
50
+ const { name : blockName , attributes } = getBlock (
51
+ selectedBlockClientId
52
+ ) ;
53
+ const activeBlockVariation = getActiveBlockVariation (
54
+ blockName ,
55
+ attributes
56
+ ) ;
48
57
const _rootClientId = getBlockRootClientId (
49
58
selectedBlockClientId
50
59
) ;
51
60
return {
52
- selectedBlockName : selectedBlockClientId
53
- ? getBlockName ( selectedBlockClientId )
54
- : null ,
61
+ selectedBlockId : activeBlockVariation
62
+ ? ` ${ blockName } / ${ activeBlockVariation . name } `
63
+ : blockName ,
55
64
rootClientId : _rootClientId ,
56
65
prioritizedBlocks :
57
66
getBlockListSettings ( _rootClientId )
@@ -78,11 +87,11 @@ function createBlockCompleter() {
78
87
) ;
79
88
80
89
return initialFilteredItems
81
- . filter ( ( item ) => item . name !== selectedBlockName )
90
+ . filter ( ( item ) => item . id !== selectedBlockId )
82
91
. slice ( 0 , SHOWN_BLOCK_TYPES ) ;
83
92
} , [
84
93
filterValue ,
85
- selectedBlockName ,
94
+ selectedBlockId ,
86
95
items ,
87
96
categories ,
88
97
collections ,
0 commit comments