UNPKG

@wordpress/block-editor

Version:
62 lines (59 loc) 1.84 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = BlockControlsSlot; var _element = require("@wordpress/element"); var _components = require("@wordpress/components"); var _warning = _interopRequireDefault(require("@wordpress/warning")); var _groups = _interopRequireDefault(require("./groups")); var _lockUnlock = require("../../lock-unlock"); var _jsxRuntime = require("react/jsx-runtime"); /** * WordPress dependencies */ /** * Internal dependencies */ const { ComponentsContext } = (0, _lockUnlock.unlock)(_components.privateApis); function BlockControlsSlot({ group = 'default', ...props }) { const toolbarState = (0, _element.useContext)(_components.__experimentalToolbarContext); const contextState = (0, _element.useContext)(ComponentsContext); const fillProps = (0, _element.useMemo)(() => ({ forwardedContext: [[_components.__experimentalToolbarContext.Provider, { value: toolbarState }], [ComponentsContext.Provider, { value: contextState }]] }), [toolbarState, contextState]); const slotFill = _groups.default[group]; const fills = (0, _components.__experimentalUseSlotFills)(slotFill.name); if (!slotFill) { globalThis.SCRIPT_DEBUG === true ? (0, _warning.default)(`Unknown BlockControls group "${group}" provided.`) : void 0; return null; } if (!fills?.length) { return null; } const { Slot } = slotFill; const slot = /*#__PURE__*/(0, _jsxRuntime.jsx)(Slot, { ...props, bubblesVirtually: true, fillProps: fillProps }); if (group === 'default') { return slot; } return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToolbarGroup, { children: slot }); } //# sourceMappingURL=slot.js.map