UNPKG

@gechiui/block-editor

Version:
96 lines (79 loc) 2.75 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("@gechiui/element"); var _i18n = require("@gechiui/i18n"); var _url = require("@gechiui/url"); 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")); /** * GeChiUI dependencies */ /** * Internal dependencies */ function ReusableBlocksList(_ref) { let { onHover, onInsert, rootClientId } = _ref; const [items,,, onSelectItem] = (0, _useBlockTypesState.default)(rootClientId, onInsert); const filteredItems = (0, _element.useMemo)(() => { return items.filter(_ref2 => { let { category } = _ref2; return category === 'reusable'; }); }, [items]); if (filteredItems.length === 0) { return (0, _element.createElement)(_noResults.default, null); } return (0, _element.createElement)(_panel.default, { title: (0, _i18n.__)('可重用区块') }, (0, _element.createElement)(_blockTypesList.default, { items: filteredItems, onSelect: onSelectItem, onHover: onHover, label: (0, _i18n.__)('可重用区块') })); } // 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 {GCComponent} The component. */ function ReusableBlocksTab(_ref3) { let { rootClientId, onInsert, onHover } = _ref3; 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)("a", { className: "block-editor-inserter__manage-reusable-blocks", href: (0, _url.addQueryArgs)('edit.php', { post_type: 'gc_block' }) }, (0, _i18n.__)('管理可重用区块')))); } var _default = ReusableBlocksTab; exports.default = _default; //# sourceMappingURL=reusable-blocks-tab.js.map