@gechiui/block-editor
Version:
54 lines (48 loc) • 1.35 kB
JavaScript
import { createElement } from "@gechiui/element";
/**
* GeChiUI dependencies
*/
import { useSelect } from '@gechiui/data';
/**
* Internal dependencies
*/
import BlockTypesList from '../block-types-list';
import useClipboardBlock from './hooks/use-clipboard-block';
import { store as blockEditorStore } from '../../store';
import useBlockTypeImpressions from './hooks/use-block-type-impressions';
import { filterInserterItems } from './utils';
function BlockTypesTab(_ref) {
let {
onSelect,
rootClientId,
listProps
} = _ref;
const clipboardBlock = useClipboardBlock(rootClientId);
const {
blockTypes
} = useSelect(select => {
const {
getInserterItems
} = select(blockEditorStore);
const blockItems = filterInserterItems(getInserterItems(rootClientId));
return {
blockTypes: clipboardBlock ? [clipboardBlock, ...blockItems] : blockItems
};
}, [rootClientId]);
const {
items,
trackBlockTypeSelected
} = useBlockTypeImpressions(blockTypes);
const handleSelect = function () {
trackBlockTypeSelected(...arguments);
onSelect(...arguments);
};
return createElement(BlockTypesList, {
name: "Blocks",
items: items,
onSelect: handleSelect,
listProps: listProps
});
}
export default BlockTypesTab;
//# sourceMappingURL=block-types-tab.native.js.map