UNPKG

@wordpress/block-editor

Version:
76 lines (75 loc) 2.34 kB
// packages/block-editor/src/components/inspector-controls/fill.js import { __experimentalStyleProvider as StyleProvider, __experimentalToolsPanelContext as ToolsPanelContext } from "@wordpress/components"; import warning from "@wordpress/warning"; import deprecated from "@wordpress/deprecated"; import { useEffect, useContext } from "@wordpress/element"; import { useBlockEditContext, mayDisplayControlsKey } from "../block-edit/context"; import groups from "./groups"; import { jsx } from "react/jsx-runtime"; 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 context = useBlockEditContext(); const Fill = groups[group]?.Fill; if (!Fill) { warning(`Unknown InspectorControls group "${group}" provided.`); return null; } if (!context[mayDisplayControlsKey]) { return null; } return /* @__PURE__ */ jsx(StyleProvider, { document, children: /* @__PURE__ */ jsx(Fill, { children: (fillProps) => { return /* @__PURE__ */ jsx( ToolsPanelInspectorControl, { fillProps, children, resetAllFilter } ); } }) }); } function RegisterResetAll({ resetAllFilter, children }) { const { registerResetAllFilter, deregisterResetAllFilter } = useContext(ToolsPanelContext); useEffect(() => { if (resetAllFilter && registerResetAllFilter && deregisterResetAllFilter) { registerResetAllFilter(resetAllFilter); return () => { deregisterResetAllFilter(resetAllFilter); }; } }, [resetAllFilter, registerResetAllFilter, deregisterResetAllFilter]); return children; } function ToolsPanelInspectorControl({ children, resetAllFilter, fillProps }) { const { forwardedContext = [] } = fillProps; const innerMarkup = /* @__PURE__ */ jsx(RegisterResetAll, { resetAllFilter, children }); return forwardedContext.reduce( (inner, [Provider, props]) => /* @__PURE__ */ jsx(Provider, { ...props, children: inner }), innerMarkup ); } export { InspectorControlsFill as default }; //# sourceMappingURL=fill.js.map