UNPKG

@wordpress/block-editor

Version:
94 lines (76 loc) 2.74 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.ReusableBlocksTab = ReusableBlocksTab; exports.default = void 0; var _element = require("@wordpress/element"); var _i18n = require("@wordpress/i18n"); var _url = require("@wordpress/url"); var _components = require("@wordpress/components"); var _blockTypesList = _interopRequireDefault(require("../block-types-list")); var _panel = _interopRequireDefault(require("./panel")); var _noResults = _interopRequireDefault(require("./no-results")); var _useBlockTypesState = _interopRequireDefault(require("./hooks/use-block-types-state")); /** * WordPress dependencies */ /** * Internal dependencies */ function ReusableBlocksList({ onHover, onInsert, rootClientId }) { const [items,,, onSelectItem] = (0, _useBlockTypesState.default)(rootClientId, onInsert); const filteredItems = (0, _element.useMemo)(() => { return items.filter(({ category }) => category === 'reusable'); }, [items]); if (filteredItems.length === 0) { return (0, _element.createElement)(_noResults.default, null); } return (0, _element.createElement)(_panel.default, { title: (0, _i18n.__)('Reusable blocks') }, (0, _element.createElement)(_blockTypesList.default, { items: filteredItems, onSelect: onSelectItem, onHover: onHover, label: (0, _i18n.__)('Reusable blocks') })); } // The unwrapped component is only exported for use by unit tests. /** * List of reusable blocks shown in the "Reusable" tab of the inserter. * * @param {Object} props Component props. * @param {?string} props.rootClientId Client id of block to insert into. * @param {Function} props.onInsert Callback to run when item is inserted. * @param {Function} props.onHover Callback to run when item is hovered. * * @return {WPComponent} The component. */ function ReusableBlocksTab({ rootClientId, onInsert, onHover }) { return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(ReusableBlocksList, { onHover: onHover, onInsert: onInsert, rootClientId: rootClientId }), (0, _element.createElement)("div", { className: "block-editor-inserter__manage-reusable-blocks-container" }, (0, _element.createElement)(_components.Button, { className: "block-editor-inserter__manage-reusable-blocks", variant: "secondary", href: (0, _url.addQueryArgs)('edit.php', { post_type: 'wp_block' }) }, (0, _i18n.__)('Manage Reusable blocks')))); } var _default = ReusableBlocksTab; exports.default = _default; //# sourceMappingURL=reusable-blocks-tab.js.map