UNPKG

@wordpress/edit-post

Version:
111 lines (95 loc) 3.41 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _element = require("@wordpress/element"); var _lodash = require("lodash"); var _blocks = require("@wordpress/blocks"); var _data = require("@wordpress/data"); var _compose = require("@wordpress/compose"); var _components = require("@wordpress/components"); var _i18n = require("@wordpress/i18n"); var _category = _interopRequireDefault(require("./category")); var _store = require("../../store"); /** * External dependencies */ /** * WordPress dependencies */ /** * Internal dependencies */ function BlockManager({ search, setState, blockTypes, categories, hasBlockSupport, isMatchingSearchTerm, numberOfHiddenBlocks }) { // Filtering occurs here (as opposed to `withSelect`) to avoid // wasted renders by consequence of `Array#filter` producing // a new value reference on each call. blockTypes = blockTypes.filter(blockType => hasBlockSupport(blockType, 'inserter', true) && (!search || isMatchingSearchTerm(blockType, search)) && (!blockType.parent || (0, _lodash.includes)(blockType.parent, 'core/post-content'))); return (0, _element.createElement)("div", { className: "edit-post-manage-blocks-modal__content" }, (0, _element.createElement)(_components.TextControl, { type: "search", label: (0, _i18n.__)('Search for a block'), value: search, onChange: nextSearch => setState({ search: nextSearch }), className: "edit-post-manage-blocks-modal__search" }), !!numberOfHiddenBlocks && (0, _element.createElement)("div", { className: "edit-post-manage-blocks-modal__disabled-blocks-count" }, (0, _i18n.sprintf)( /* translators: %d: number of blocks. */ (0, _i18n._n)('%d block is disabled.', '%d blocks are disabled.', numberOfHiddenBlocks), numberOfHiddenBlocks)), (0, _element.createElement)("div", { tabIndex: "0", role: "region", "aria-label": (0, _i18n.__)('Available block types'), className: "edit-post-manage-blocks-modal__results" }, blockTypes.length === 0 && (0, _element.createElement)("p", { className: "edit-post-manage-blocks-modal__no-results" }, (0, _i18n.__)('No blocks found.')), categories.map(category => (0, _element.createElement)(_category.default, { key: category.slug, title: category.title, blockTypes: (0, _lodash.filter)(blockTypes, { category: category.slug }) })), (0, _element.createElement)(_category.default, { title: (0, _i18n.__)('Uncategorized'), blockTypes: (0, _lodash.filter)(blockTypes, ({ category }) => !category) }))); } var _default = (0, _compose.compose)([(0, _compose.withState)({ search: '' }), (0, _data.withSelect)(select => { const { getBlockTypes, getCategories, hasBlockSupport, isMatchingSearchTerm } = select(_blocks.store); const { getPreference } = select(_store.store); const hiddenBlockTypes = getPreference('hiddenBlockTypes'); const numberOfHiddenBlocks = (0, _lodash.isArray)(hiddenBlockTypes) && hiddenBlockTypes.length; return { blockTypes: getBlockTypes(), categories: getCategories(), hasBlockSupport, isMatchingSearchTerm, numberOfHiddenBlocks }; })])(BlockManager); exports.default = _default; //# sourceMappingURL=manager.js.map