@wordpress/components
Version:
UI components for WordPress.
51 lines (41 loc) • 1.4 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import { createElement } from "@wordpress/element";
/**
* External dependencies
*/
import { ToolbarItem as BaseToolbarItem } from 'reakit/Toolbar';
/**
* WordPress dependencies
*/
import { forwardRef, useContext } from '@wordpress/element';
import warning from '@wordpress/warning';
/**
* Internal dependencies
*/
import ToolbarContext from '../toolbar-context';
function ToolbarItem({
children,
as: Component,
...props
}, ref) {
const accessibleToolbarState = useContext(ToolbarContext);
if (typeof children !== 'function' && !Component) {
typeof process !== "undefined" && process.env && process.env.NODE_ENV !== "production" ? warning('`ToolbarItem` is a generic headless component. You must pass either a `children` prop as a function or an `as` prop as a component. ' + 'See https://developer.wordpress.org/block-editor/components/toolbar-item/') : void 0;
return null;
}
const allProps = { ...props,
ref,
'data-toolbar-item': true
};
if (!accessibleToolbarState) {
if (Component) {
return createElement(Component, allProps, children);
}
return children(allProps);
}
return createElement(BaseToolbarItem, _extends({}, accessibleToolbarState, allProps, {
as: Component
}), children);
}
export default forwardRef(ToolbarItem);
//# sourceMappingURL=index.js.map