UNPKG

@wordpress/block-editor

Version:
54 lines (53 loc) 1.49 kB
/** * WordPress dependencies */ import { useContext, useMemo } from '@wordpress/element'; import { privateApis, __experimentalToolbarContext as ToolbarContext, ToolbarGroup, __experimentalUseSlotFills as useSlotFills } from '@wordpress/components'; import warning from '@wordpress/warning'; /** * Internal dependencies */ import groups from './groups'; import { unlock } from '../../lock-unlock'; import { jsx as _jsx } from "react/jsx-runtime"; const { ComponentsContext } = unlock(privateApis); export default function BlockControlsSlot({ group = 'default', ...props }) { const toolbarState = useContext(ToolbarContext); const contextState = useContext(ComponentsContext); const fillProps = useMemo(() => ({ forwardedContext: [[ToolbarContext.Provider, { value: toolbarState }], [ComponentsContext.Provider, { value: contextState }]] }), [toolbarState, contextState]); const slotFill = groups[group]; const fills = useSlotFills(slotFill.name); if (!slotFill) { globalThis.SCRIPT_DEBUG === true ? warning(`Unknown BlockControls group "${group}" provided.`) : void 0; return null; } if (!fills?.length) { return null; } const { Slot } = slotFill; const slot = /*#__PURE__*/_jsx(Slot, { ...props, bubblesVirtually: true, fillProps: fillProps }); if (group === 'default') { return slot; } return /*#__PURE__*/_jsx(ToolbarGroup, { children: slot }); } //# sourceMappingURL=slot.js.map