UNPKG

@wordpress/block-editor

Version:
69 lines (53 loc) 1.91 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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _components = require("@wordpress/components"); var _warning = _interopRequireDefault(require("@wordpress/warning")); var _groups = _interopRequireDefault(require("./groups")); var _lockUnlock = require("../../lock-unlock"); /** * 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 Slot = _groups.default[group]?.Slot; const fills = (0, _components.__experimentalUseSlotFills)(Slot?.__unstableName); if (!Slot) { typeof process !== "undefined" && process.env && process.env.NODE_ENV !== "production" ? (0, _warning.default)(`Unknown BlockControls group "${group}" provided.`) : void 0; return null; } if (!fills?.length) { return null; } const slot = (0, _element.createElement)(Slot, (0, _extends2.default)({}, props, { bubblesVirtually: true, fillProps: fillProps })); if (group === 'default') { return slot; } return (0, _element.createElement)(_components.ToolbarGroup, null, slot); } //# sourceMappingURL=slot.js.map