UNPKG

@wordpress/block-editor

Version:
48 lines (44 loc) 1.25 kB
/** * WordPress dependencies */ import { useSelect } from '@wordpress/data'; /** * Internal dependencies */ import { store as blockEditorStore } from '../../store'; import { unlock } from '../../lock-unlock'; export default function useListViewClientIds({ blocks, rootClientId }) { return useSelect(select => { const { getDraggedBlockClientIds, getSelectedBlockClientIds, __unstableGetClientIdsTree, getBlockEditingMode } = unlock(select(blockEditorStore)); const removeDisabledBlocks = tree => { return tree.flatMap(({ clientId, innerBlocks, ...rest }) => { if (getBlockEditingMode(clientId) === 'disabled') { return removeDisabledBlocks(innerBlocks); } return [{ clientId, innerBlocks: removeDisabledBlocks(innerBlocks), ...rest }]; }); }; return { selectedClientIds: getSelectedBlockClientIds(), draggedClientIds: getDraggedBlockClientIds(), clientIdsTree: removeDisabledBlocks(blocks !== null && blocks !== void 0 ? blocks : __unstableGetClientIdsTree(rootClientId)) }; }, [blocks, rootClientId]); } //# sourceMappingURL=use-list-view-client-ids.js.map