UNPKG

@wordpress/edit-post

Version:
113 lines (91 loc) 3.17 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 _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _lodash = require("lodash"); var _data = require("@wordpress/data"); var _compose = require("@wordpress/compose"); var _components = require("@wordpress/components"); var _checklist = _interopRequireDefault(require("./checklist")); /** * External dependencies */ /** * WordPress dependencies */ /** * Internal dependencies */ function BlockManagerCategory(_ref) { var instanceId = _ref.instanceId, category = _ref.category, blockTypes = _ref.blockTypes, hiddenBlockTypes = _ref.hiddenBlockTypes, toggleVisible = _ref.toggleVisible, toggleAllVisible = _ref.toggleAllVisible; if (!blockTypes.length) { return null; } var checkedBlockNames = _lodash.without.apply(void 0, [(0, _lodash.map)(blockTypes, 'name')].concat((0, _toConsumableArray2.default)(hiddenBlockTypes))); var titleId = 'edit-post-manage-blocks-modal__category-title-' + instanceId; var isAllChecked = checkedBlockNames.length === blockTypes.length; var ariaChecked; if (isAllChecked) { ariaChecked = 'true'; } else if (checkedBlockNames.length > 0) { ariaChecked = 'mixed'; } else { ariaChecked = 'false'; } return (0, _element.createElement)("div", { role: "group", "aria-labelledby": titleId, className: "edit-post-manage-blocks-modal__category" }, (0, _element.createElement)(_components.CheckboxControl, { checked: isAllChecked, onChange: toggleAllVisible, className: "edit-post-manage-blocks-modal__category-title", "aria-checked": ariaChecked, label: (0, _element.createElement)("span", { id: titleId }, category.title) }), (0, _element.createElement)(_checklist.default, { blockTypes: blockTypes, value: checkedBlockNames, onItemChange: toggleVisible })); } var _default = (0, _compose.compose)([_compose.withInstanceId, (0, _data.withSelect)(function (select) { var _select = select('core/edit-post'), getPreference = _select.getPreference; return { hiddenBlockTypes: getPreference('hiddenBlockTypes') }; }), (0, _data.withDispatch)(function (dispatch, ownProps) { var _dispatch = dispatch('core/edit-post'), showBlockTypes = _dispatch.showBlockTypes, hideBlockTypes = _dispatch.hideBlockTypes; return { toggleVisible: function toggleVisible(blockName, nextIsChecked) { if (nextIsChecked) { showBlockTypes(blockName); } else { hideBlockTypes(blockName); } }, toggleAllVisible: function toggleAllVisible(nextIsChecked) { var blockNames = (0, _lodash.map)(ownProps.blockTypes, 'name'); if (nextIsChecked) { showBlockTypes(blockNames); } else { hideBlockTypes(blockNames); } } }; })])(BlockManagerCategory); exports.default = _default; //# sourceMappingURL=category.js.map