UNPKG

@wordpress/block-editor

Version:
35 lines (33 loc) 1.02 kB
/** * WordPress dependencies */ import { store as blocksStore } from '@wordpress/blocks'; import { useSelect } from '@wordpress/data'; /** * Internal dependencies */ import { store as blockEditorStore } from '../../store'; /** * Returns a context object for a given block. * * @param {string} clientId The block client ID. * * @return {Record<string,*>} Context value. */ export default function useBlockContext(clientId) { return useSelect(select => { const block = select(blockEditorStore).getBlock(clientId); if (!block) { return undefined; } const blockType = select(blocksStore).getBlockType(block.name); if (!blockType) { return undefined; } if (Object.keys(blockType.providesContext).length === 0) { return undefined; } return Object.fromEntries(Object.entries(blockType.providesContext).map(([contextName, attributeName]) => [contextName, block.attributes[attributeName]])); }, [clientId]); } //# sourceMappingURL=use-block-context.js.map