@gechiui/block-editor
Version:
80 lines (72 loc) • 2.26 kB
JavaScript
import { createElement, Fragment } from "@gechiui/element";
/**
* GeChiUI dependencies
*/
import { useMemo } from '@gechiui/element';
import { __ } from '@gechiui/i18n';
import { addQueryArgs } from '@gechiui/url';
/**
* Internal dependencies
*/
import BlockTypesList from '../block-types-list';
import InserterPanel from './panel';
import InserterNoResults from './no-results';
import useBlockTypesState from './hooks/use-block-types-state';
function ReusableBlocksList(_ref) {
let {
onHover,
onInsert,
rootClientId
} = _ref;
const [items,,, onSelectItem] = useBlockTypesState(rootClientId, onInsert);
const filteredItems = useMemo(() => {
return items.filter(_ref2 => {
let {
category
} = _ref2;
return category === 'reusable';
});
}, [items]);
if (filteredItems.length === 0) {
return createElement(InserterNoResults, null);
}
return createElement(InserterPanel, {
title: __('可重用区块')
}, createElement(BlockTypesList, {
items: filteredItems,
onSelect: onSelectItem,
onHover: onHover,
label: __('可重用区块')
}));
} // 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.
*/
export function ReusableBlocksTab(_ref3) {
let {
rootClientId,
onInsert,
onHover
} = _ref3;
return createElement(Fragment, null, createElement(ReusableBlocksList, {
onHover: onHover,
onInsert: onInsert,
rootClientId: rootClientId
}), createElement("div", {
className: "block-editor-inserter__manage-reusable-blocks-container"
}, createElement("a", {
className: "block-editor-inserter__manage-reusable-blocks",
href: addQueryArgs('edit.php', {
post_type: 'gc_block'
})
}, __('管理可重用区块'))));
}
export default ReusableBlocksTab;
//# sourceMappingURL=reusable-blocks-tab.js.map