@wordpress/block-editor
Version:
58 lines (49 loc) • 1.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useListViewClientIds;
var _data = require("@wordpress/data");
var _store = require("../../store");
var _lockUnlock = require("../../lock-unlock");
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function useListViewClientIds({
blocks,
rootClientId
}) {
return (0, _data.useSelect)(select => {
const {
getDraggedBlockClientIds,
getSelectedBlockClientIds,
__unstableGetClientIdsTree,
getBlockEditingMode
} = (0, _lockUnlock.unlock)(select(_store.store));
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