@wordpress/components
Version:
UI components for WordPress.
52 lines (40 loc) • 1.45 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.ToolsPanelItem = void 0;
var _element = require("@wordpress/element");
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _hook = require("./hook");
var _view = require("../../view");
var _context = require("../../ui/context");
/**
* External dependencies
*/
/**
* Internal dependencies
*/
// This wraps controls to be conditionally displayed within a tools panel. It
// prevents props being applied to HTML elements that would make them invalid.
const UnconnectedToolsPanelItem = (props, forwardedRef) => {
const {
children,
isShown,
shouldRenderPlaceholder,
...toolsPanelItemProps
} = (0, _hook.useToolsPanelItem)(props);
if (!isShown) {
return shouldRenderPlaceholder ? (0, _element.createElement)(_view.View, (0, _extends2.default)({}, toolsPanelItemProps, {
ref: forwardedRef
})) : null;
}
return (0, _element.createElement)(_view.View, (0, _extends2.default)({}, toolsPanelItemProps, {
ref: forwardedRef
}), children);
};
const ToolsPanelItem = (0, _context.contextConnect)(UnconnectedToolsPanelItem, 'ToolsPanelItem');
exports.ToolsPanelItem = ToolsPanelItem;
var _default = ToolsPanelItem;
exports.default = _default;
//# sourceMappingURL=component.js.map