@wordpress/components
Version:
UI components for WordPress.
64 lines (47 loc) • 1.71 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _element = require("@wordpress/element");
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _Toolbar = require("reakit/Toolbar");
var _warning = _interopRequireDefault(require("@wordpress/warning"));
var _toolbarContext = _interopRequireDefault(require("../toolbar-context"));
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function ToolbarItem({
children,
as: Component,
...props
}, ref) {
const accessibleToolbarState = (0, _element.useContext)(_toolbarContext.default);
if (typeof children !== 'function' && !Component) {
typeof process !== "undefined" && process.env && process.env.NODE_ENV !== "production" ? (0, _warning.default)('`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 (0, _element.createElement)(Component, allProps, children);
}
return children(allProps);
}
return (0, _element.createElement)(_Toolbar.ToolbarItem, (0, _extends2.default)({}, accessibleToolbarState, allProps, {
as: Component
}), children);
}
var _default = (0, _element.forwardRef)(ToolbarItem);
exports.default = _default;
//# sourceMappingURL=index.js.map