UNPKG

@wordpress/block-editor

Version:
8 lines (7 loc) 2.32 kB
{ "version": 3, "sources": ["../../../src/components/list-view/use-list-view-expand-selected-item.js"], "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useEffect, useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nexport default function useListViewExpandSelectedItem( {\n\tfirstSelectedBlockClientId,\n\tsetExpandedState,\n} ) {\n\tconst [ selectedTreeId, setSelectedTreeId ] = useState( null );\n\tconst { selectedBlockParentClientIds } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockParents } = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tselectedBlockParentClientIds: getBlockParents(\n\t\t\t\t\tfirstSelectedBlockClientId,\n\t\t\t\t\tfalse\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ firstSelectedBlockClientId ]\n\t);\n\n\t// Expand tree when a block is selected.\n\tuseEffect( () => {\n\t\t// If the selectedTreeId is the same as the selected block,\n\t\t// it means that the block was selected using the block list tree.\n\t\tif ( selectedTreeId === firstSelectedBlockClientId ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If the selected block has parents, get the top-level parent.\n\t\tif ( selectedBlockParentClientIds?.length ) {\n\t\t\t// If the selected block has parents,\n\t\t\t// expand the tree branch.\n\t\t\tsetExpandedState( {\n\t\t\t\ttype: 'expand',\n\t\t\t\tclientIds: selectedBlockParentClientIds,\n\t\t\t} );\n\t\t}\n\t}, [\n\t\tfirstSelectedBlockClientId,\n\t\tselectedBlockParentClientIds,\n\t\tselectedTreeId,\n\t\tsetExpandedState,\n\t] );\n\n\treturn {\n\t\tsetSelectedTreeId,\n\t};\n}\n"], "mappings": ";AAGA,SAAS,WAAW,gBAAgB;AACpC,SAAS,iBAAiB;AAK1B,SAAS,SAAS,wBAAwB;AAE3B,SAAR,8BAAgD;AAAA,EACtD;AAAA,EACA;AACD,GAAI;AACH,QAAM,CAAE,gBAAgB,iBAAkB,IAAI,SAAU,IAAK;AAC7D,QAAM,EAAE,6BAA6B,IAAI;AAAA,IACxC,CAAE,WAAY;AACb,YAAM,EAAE,gBAAgB,IAAI,OAAQ,gBAAiB;AACrD,aAAO;AAAA,QACN,8BAA8B;AAAA,UAC7B;AAAA,UACA;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IACA,CAAE,0BAA2B;AAAA,EAC9B;AAGA,YAAW,MAAM;AAGhB,QAAK,mBAAmB,4BAA6B;AACpD;AAAA,IACD;AAGA,QAAK,8BAA8B,QAAS;AAG3C,uBAAkB;AAAA,QACjB,MAAM;AAAA,QACN,WAAW;AAAA,MACZ,CAAE;AAAA,IACH;AAAA,EACD,GAAG;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAE;AAEF,SAAO;AAAA,IACN;AAAA,EACD;AACD;", "names": [] }