@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
61 lines (56 loc) • 1.62 kB
JavaScript
import { createElement } from "@wordpress/element";
/**
* External dependencies
*/
import { get } from 'lodash';
/**
* WordPress dependencies
*/
import { Button } from '@wordpress/components';
import { useSelect } from '@wordpress/data';
import { store as coreStore } from '@wordpress/core-data';
/**
* Internal dependencies
*/
import { unescapeTerms } from '../../utils/terms';
const MAX_MOST_USED_TERMS = 10;
const DEFAULT_QUERY = {
per_page: MAX_MOST_USED_TERMS,
orderby: 'count',
order: 'desc',
_fields: 'id,name,count'
};
export default function MostUsedTerms({
onSelect,
taxonomy
}) {
const {
_terms,
showTerms
} = useSelect(select => {
const mostUsedTerms = select(coreStore).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 = unescapeTerms(_terms);
const label = get(taxonomy, ['labels', 'most_used']);
return createElement("div", {
className: "editor-post-taxonomies__flat-term-most-used"
}, createElement("h3", {
className: "editor-post-taxonomies__flat-term-most-used-label"
}, label), createElement("ul", {
role: "list",
className: "editor-post-taxonomies__flat-term-most-used-list"
}, terms.map(term => createElement("li", {
key: term.id
}, createElement(Button, {
isLink: true,
onClick: () => onSelect(term)
}, term.name)))));
}
//# sourceMappingURL=most-used-terms.js.map