@wordpress/block-editor
Version:
38 lines (34 loc) • 1.14 kB
JavaScript
import { createElement, Fragment } from "@wordpress/element";
/**
* WordPress dependencies
*/
import { __experimentalStyleProvider as StyleProvider, ToolbarGroup } from '@wordpress/components';
/**
* Internal dependencies
*/
import useBlockControlsFill from './hook';
export default function BlockControlsFill({
group = 'default',
controls,
children,
__experimentalShareWithChildBlocks = false
}) {
const Fill = useBlockControlsFill(group, __experimentalShareWithChildBlocks);
if (!Fill) {
return null;
}
const innerMarkup = createElement(Fragment, null, group === 'default' && createElement(ToolbarGroup, {
controls: controls
}), children);
return createElement(StyleProvider, {
document: document
}, createElement(Fill, null, fillProps => {
// `fillProps.forwardedContext` is an array of context provider entries, provided by slot,
// that should wrap the fill markup.
const {
forwardedContext = []
} = fillProps;
return forwardedContext.reduce((inner, [Provider, props]) => createElement(Provider, props, inner), innerMarkup);
}));
}
//# sourceMappingURL=fill.js.map