@wordpress/block-editor
Version:
8 lines (7 loc) • 4.72 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../src/components/block-edit/index.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useMemo, useContext } from '@wordpress/element';\nimport { hasBlockSupport } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport Edit from './edit';\nimport {\n\tBlockEditContextProvider,\n\tuseBlockEditContext,\n\tmayDisplayControlsKey,\n\tmayDisplayParentControlsKey,\n\tmayDisplayPatternEditingControlsKey,\n\tblockEditingModeKey,\n\tblockBindingsKey,\n\tisPreviewModeKey,\n} from './context';\nimport { MultipleUsageWarning } from './multiple-usage-warning';\nimport { PrivateBlockContext } from '../block-list/private-block-context';\n\n/**\n * The `useBlockEditContext` hook provides information about the block this hook is being used in.\n * It returns an object with the `name`, `isSelected` state, and the `clientId` of the block.\n * It is useful if you want to create custom hooks that need access to the current blocks clientId\n * but don't want to rely on the data getting passed in as a parameter.\n *\n * @return {Object} Block edit context\n */\nexport { useBlockEditContext };\n\nexport default function BlockEdit( {\n\tmayDisplayControls,\n\tmayDisplayParentControls,\n\tmayDisplayPatternEditingControls,\n\tblockEditingMode,\n\tisPreviewMode,\n\t// The remaining props are passed through the BlockEdit filters and are thus\n\t// public API!\n\t...props\n} ) {\n\tconst {\n\t\tname,\n\t\tisSelected,\n\t\tclientId,\n\t\tattributes = {},\n\t\t__unstableLayoutClassNames,\n\t} = props;\n\tconst { layout = null, metadata = {} } = attributes;\n\tconst { bindings } = metadata;\n\tconst layoutSupport =\n\t\thasBlockSupport( name, 'layout', false ) ||\n\t\thasBlockSupport( name, '__experimentalLayout', false );\n\tconst { originalBlockClientId } = useContext( PrivateBlockContext );\n\n\treturn (\n\t\t<BlockEditContextProvider\n\t\t\t// It is important to return the same object if props haven't\n\t\t\t// changed to avoid unnecessary rerenders.\n\t\t\t// See https://reactjs.org/docs/context.html#caveats.\n\t\t\tvalue={ useMemo(\n\t\t\t\t() => ( {\n\t\t\t\t\tname,\n\t\t\t\t\tisSelected,\n\t\t\t\t\tclientId,\n\t\t\t\t\tlayout: layoutSupport ? layout : null,\n\t\t\t\t\t__unstableLayoutClassNames,\n\t\t\t\t\t// We use symbols in favour of an __unstable prefix to avoid\n\t\t\t\t\t// usage outside of the package (this context is exposed).\n\t\t\t\t\t[ mayDisplayControlsKey ]: mayDisplayControls,\n\t\t\t\t\t[ mayDisplayParentControlsKey ]: mayDisplayParentControls,\n\t\t\t\t\t[ mayDisplayPatternEditingControlsKey ]:\n\t\t\t\t\t\tmayDisplayPatternEditingControls &&\n\t\t\t\t\t\tblockEditingMode !== 'disabled',\n\t\t\t\t\t[ blockEditingModeKey ]: blockEditingMode,\n\t\t\t\t\t[ blockBindingsKey ]: bindings,\n\t\t\t\t\t[ isPreviewModeKey ]: isPreviewMode,\n\t\t\t\t} ),\n\t\t\t\t[\n\t\t\t\t\tname,\n\t\t\t\t\tisSelected,\n\t\t\t\t\tclientId,\n\t\t\t\t\tlayoutSupport,\n\t\t\t\t\tlayout,\n\t\t\t\t\t__unstableLayoutClassNames,\n\t\t\t\t\tmayDisplayControls,\n\t\t\t\t\tmayDisplayParentControls,\n\t\t\t\t\tmayDisplayPatternEditingControls,\n\t\t\t\t\tblockEditingMode,\n\t\t\t\t\tbindings,\n\t\t\t\t\tisPreviewMode,\n\t\t\t\t]\n\t\t\t) }\n\t\t>\n\t\t\t<Edit { ...props } />\n\t\t\t{ originalBlockClientId && (\n\t\t\t\t<MultipleUsageWarning\n\t\t\t\t\toriginalBlockClientId={ originalBlockClientId }\n\t\t\t\t\tname={ name }\n\t\t\t\t\tonReplace={ props.onReplace }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</BlockEditContextProvider>\n\t);\n}\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qBAAoC;AACpC,oBAAgC;AAKhC,kBAAiB;AACjB,qBASO;AACP,oCAAqC;AACrC,mCAAoC;AAqClC;AAzBa,SAAR,UAA4B;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA,EAGA,GAAG;AACJ,GAAI;AACH,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,CAAC;AAAA,IACd;AAAA,EACD,IAAI;AACJ,QAAM,EAAE,SAAS,MAAM,WAAW,CAAC,EAAE,IAAI;AACzC,QAAM,EAAE,SAAS,IAAI;AACrB,QAAM,oBACL,+BAAiB,MAAM,UAAU,KAAM,SACvC,+BAAiB,MAAM,wBAAwB,KAAM;AACtD,QAAM,EAAE,sBAAsB,QAAI,2BAAY,gDAAoB;AAElE,SACC;AAAA,IAAC;AAAA;AAAA,MAIA,WAAQ;AAAA,QACP,OAAQ;AAAA,UACP;AAAA,UACA;AAAA,UACA;AAAA,UACA,QAAQ,gBAAgB,SAAS;AAAA,UACjC;AAAA;AAAA;AAAA,UAGA,CAAE,oCAAsB,GAAG;AAAA,UAC3B,CAAE,0CAA4B,GAAG;AAAA,UACjC,CAAE,kDAAoC,GACrC,oCACA,qBAAqB;AAAA,UACtB,CAAE,kCAAoB,GAAG;AAAA,UACzB,CAAE,+BAAiB,GAAG;AAAA,UACtB,CAAE,+BAAiB,GAAG;AAAA,QACvB;AAAA,QACA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD;AAAA,MAEA;AAAA,oDAAC,YAAAA,SAAA,EAAO,GAAG,OAAQ;AAAA,QACjB,yBACD;AAAA,UAAC;AAAA;AAAA,YACA;AAAA,YACA;AAAA,YACA,WAAY,MAAM;AAAA;AAAA,QACnB;AAAA;AAAA;AAAA,EAEF;AAEF;",
"names": ["Edit"]
}