UNPKG

@gechiui/block-editor

Version:
62 lines (55 loc) 1.6 kB
import { createElement } from "@gechiui/element"; /** * GeChiUI dependencies */ import { useSelect } from '@gechiui/data'; /** * Internal dependencies */ import { searchItems } from './search-items'; import BlockTypesList from '../block-types-list'; import InserterNoResults from './no-results'; import { store as blockEditorStore } from '../../store'; import useBlockTypeImpressions from './hooks/use-block-type-impressions'; import { filterInserterItems } from './utils'; function InserterSearchResults(_ref) { let { filterValue, onSelect, listProps, rootClientId, isFullScreen } = _ref; const { blockTypes } = useSelect(select => { const allItems = select(blockEditorStore).getInserterItems(rootClientId); const availableItems = filterInserterItems(allItems, { allowReusable: true }); const filteredItems = searchItems(availableItems, filterValue); return { blockTypes: filteredItems }; }, [rootClientId, filterValue]); const { items, trackBlockTypeSelected } = useBlockTypeImpressions(blockTypes); if (!items || (items === null || items === void 0 ? void 0 : items.length) === 0) { return createElement(InserterNoResults, null); } const handleSelect = function () { trackBlockTypeSelected(...arguments); onSelect(...arguments); }; return createElement(BlockTypesList, { name: "Blocks", initialNumToRender: isFullScreen ? 10 : 3, items, onSelect: handleSelect, listProps }); } export default InserterSearchResults; //# sourceMappingURL=search-results.native.js.map