@wordpress/block-editor
Version:
83 lines (66 loc) • 2.04 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _element = require("@wordpress/element");
var _data = require("@wordpress/data");
var _i18n = require("@wordpress/i18n");
var _searchItems = require("./search-items");
var _blockTypesList = _interopRequireDefault(require("../block-types-list"));
var _noResults = _interopRequireDefault(require("./no-results"));
var _store = require("../../store");
var _useBlockTypeImpressions = _interopRequireDefault(require("./hooks/use-block-type-impressions"));
var _utils = require("./utils");
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function InserterSearchResults({
filterValue,
onSelect,
listProps,
rootClientId,
isFullScreen
}) {
const {
blockTypes
} = (0, _data.useSelect)(select => {
const allItems = select(_store.store).getInserterItems(rootClientId);
const availableItems = (0, _utils.filterInserterItems)(allItems, {
allowReusable: true
});
const filteredItems = (0, _searchItems.searchItems)(availableItems, filterValue);
return {
blockTypes: filteredItems
};
}, [rootClientId, filterValue]);
const {
items,
trackBlockTypeSelected
} = (0, _useBlockTypeImpressions.default)(blockTypes);
if (!items || items?.length === 0) {
return (0, _element.createElement)(_noResults.default, null);
}
const handleSelect = (...args) => {
trackBlockTypeSelected(...args);
onSelect(...args);
};
return (0, _element.createElement)(_blockTypesList.default, {
name: "Blocks",
initialNumToRender: isFullScreen ? 10 : 3,
sections: [(0, _utils.createInserterSection)({
key: 'search',
items
})],
onSelect: handleSelect,
listProps: listProps,
label: (0, _i18n.__)('Blocks')
});
}
var _default = InserterSearchResults;
exports.default = _default;
//# sourceMappingURL=search-results.native.js.map