@wordpress/block-editor
Version:
8 lines (7 loc) • 1.94 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../src/components/inner-blocks/use-block-context.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Returns a context object for a given block.\n *\n * @param {string} clientId The block client ID.\n *\n * @return {Record<string,*>} Context value.\n */\nexport default function useBlockContext( clientId ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst block = select( blockEditorStore ).getBlock( clientId );\n\t\t\tif ( ! block ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst blockType = select( blocksStore ).getBlockType( block.name );\n\t\t\tif ( ! blockType ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tif ( Object.keys( blockType.providesContext ).length === 0 ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\treturn Object.fromEntries(\n\t\t\t\tObject.entries( blockType.providesContext ).map(\n\t\t\t\t\t( [ contextName, attributeName ] ) => [\n\t\t\t\t\t\tcontextName,\n\t\t\t\t\t\tblock.attributes[ attributeName ],\n\t\t\t\t\t]\n\t\t\t\t)\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n}\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,oBAAqC;AACrC,kBAA0B;AAK1B,mBAA0C;AAS3B,SAAR,gBAAkC,UAAW;AACnD,aAAO;AAAA,IACN,CAAE,WAAY;AACb,YAAM,QAAQ,OAAQ,aAAAA,KAAiB,EAAE,SAAU,QAAS;AAC5D,UAAK,CAAE,OAAQ;AACd,eAAO;AAAA,MACR;AAEA,YAAM,YAAY,OAAQ,cAAAC,KAAY,EAAE,aAAc,MAAM,IAAK;AACjE,UAAK,CAAE,WAAY;AAClB,eAAO;AAAA,MACR;AAEA,UAAK,OAAO,KAAM,UAAU,eAAgB,EAAE,WAAW,GAAI;AAC5D,eAAO;AAAA,MACR;AAEA,aAAO,OAAO;AAAA,QACb,OAAO,QAAS,UAAU,eAAgB,EAAE;AAAA,UAC3C,CAAE,CAAE,aAAa,aAAc,MAAO;AAAA,YACrC;AAAA,YACA,MAAM,WAAY,aAAc;AAAA,UACjC;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AACD;",
"names": ["blockEditorStore", "blocksStore"]
}