@wordpress/block-editor
Version:
48 lines (44 loc) • 1.25 kB
JavaScript
/**
* 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