@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
74 lines (61 loc) • 1.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = MostUsedTerms;
var _element = require("@wordpress/element");
var _lodash = require("lodash");
var _components = require("@wordpress/components");
var _data = require("@wordpress/data");
var _coreData = require("@wordpress/core-data");
var _terms2 = require("../../utils/terms");
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const MAX_MOST_USED_TERMS = 10;
const DEFAULT_QUERY = {
per_page: MAX_MOST_USED_TERMS,
orderby: 'count',
order: 'desc',
_fields: 'id,name,count'
};
function MostUsedTerms({
onSelect,
taxonomy
}) {
const {
_terms,
showTerms
} = (0, _data.useSelect)(select => {
const mostUsedTerms = select(_coreData.store).getEntityRecords('taxonomy', taxonomy.slug, DEFAULT_QUERY);
return {
_terms: mostUsedTerms,
showTerms: (mostUsedTerms === null || mostUsedTerms === void 0 ? void 0 : mostUsedTerms.length) >= MAX_MOST_USED_TERMS
};
}, []);
if (!showTerms) {
return null;
}
const terms = (0, _terms2.unescapeTerms)(_terms);
const label = (0, _lodash.get)(taxonomy, ['labels', 'most_used']);
return (0, _element.createElement)("div", {
className: "editor-post-taxonomies__flat-term-most-used"
}, (0, _element.createElement)("h3", {
className: "editor-post-taxonomies__flat-term-most-used-label"
}, label), (0, _element.createElement)("ul", {
role: "list",
className: "editor-post-taxonomies__flat-term-most-used-list"
}, terms.map(term => (0, _element.createElement)("li", {
key: term.id
}, (0, _element.createElement)(_components.Button, {
isLink: true,
onClick: () => onSelect(term)
}, term.name)))));
}
//# sourceMappingURL=most-used-terms.js.map