UNPKG

@wordpress/block-editor

Version:
83 lines (74 loc) 2.37 kB
import { createElement } from "@wordpress/element"; /** * WordPress dependencies */ import { __experimentalStyleProvider as StyleProvider, __experimentalToolsPanelContext as ToolsPanelContext } from '@wordpress/components'; import warning from '@wordpress/warning'; import deprecated from '@wordpress/deprecated'; import { useEffect } from '@wordpress/element'; /** * Internal dependencies */ import useDisplayBlockControls from '../use-display-block-controls'; import groups from './groups'; export default function InspectorControlsFill({ children, group = 'default', __experimentalGroup, resetAllFilter }) { if (__experimentalGroup) { deprecated('`__experimentalGroup` property in `InspectorControlsFill`', { since: '6.2', version: '6.4', alternative: '`group`' }); group = __experimentalGroup; } const isDisplayed = useDisplayBlockControls(); const Fill = groups[group]?.Fill; if (!Fill) { typeof process !== "undefined" && process.env && process.env.NODE_ENV !== "production" ? warning(`Unknown InspectorControls group "${group}" provided.`) : void 0; return null; } if (!isDisplayed) { return null; } return createElement(StyleProvider, { document: document }, createElement(Fill, null, fillProps => { return createElement(ToolsPanelInspectorControl, { fillProps: fillProps, children: children, resetAllFilter: resetAllFilter }); })); } function ToolsPanelInspectorControl({ children, resetAllFilter, fillProps }) { const { registerResetAllFilter, deregisterResetAllFilter } = fillProps; useEffect(() => { if (resetAllFilter && registerResetAllFilter) { registerResetAllFilter(resetAllFilter); } return () => { if (resetAllFilter && deregisterResetAllFilter) { deregisterResetAllFilter(resetAllFilter); } }; }, [resetAllFilter, registerResetAllFilter, deregisterResetAllFilter]); // Children passed to InspectorControlsFill will not have // access to any React Context whose Provider is part of // the InspectorControlsSlot tree. So we re-create the // Provider in this subtree. const value = fillProps && Object.keys(fillProps).length > 0 ? fillProps : null; return createElement(ToolsPanelContext.Provider, { value: value }, children); } //# sourceMappingURL=fill.js.map