@wordpress/edit-post
Version:
Edit Post module for WordPress.
113 lines (91 loc) • 3.17 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 _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