@wordpress/block-editor
Version:
96 lines (79 loc) • 2.71 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = InspectorControlsFill;
var _element = require("@wordpress/element");
var _components = require("@wordpress/components");
var _warning = _interopRequireDefault(require("@wordpress/warning"));
var _deprecated = _interopRequireDefault(require("@wordpress/deprecated"));
var _useDisplayBlockControls = _interopRequireDefault(require("../use-display-block-controls"));
var _groups = _interopRequireDefault(require("./groups"));
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function InspectorControlsFill({
children,
group = 'default',
__experimentalGroup,
resetAllFilter
}) {
if (__experimentalGroup) {
(0, _deprecated.default)('`__experimentalGroup` property in `InspectorControlsFill`', {
since: '6.2',
version: '6.4',
alternative: '`group`'
});
group = __experimentalGroup;
}
const isDisplayed = (0, _useDisplayBlockControls.default)();
const Fill = _groups.default[group]?.Fill;
if (!Fill) {
typeof process !== "undefined" && process.env && process.env.NODE_ENV !== "production" ? (0, _warning.default)(`Unknown InspectorControls group "${group}" provided.`) : void 0;
return null;
}
if (!isDisplayed) {
return null;
}
return (0, _element.createElement)(_components.__experimentalStyleProvider, {
document: document
}, (0, _element.createElement)(Fill, null, fillProps => {
return (0, _element.createElement)(ToolsPanelInspectorControl, {
fillProps: fillProps,
children: children,
resetAllFilter: resetAllFilter
});
}));
}
function ToolsPanelInspectorControl({
children,
resetAllFilter,
fillProps
}) {
const {
registerResetAllFilter,
deregisterResetAllFilter
} = fillProps;
(0, _element.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 (0, _element.createElement)(_components.__experimentalToolsPanelContext.Provider, {
value: value
}, children);
}
//# sourceMappingURL=fill.js.map