@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
44 lines (41 loc) • 1.34 kB
JavaScript
import { createElement } from "@wordpress/element";
/**
* External dependencies
*/
import { filter, identity, includes } from 'lodash';
/**
* WordPress dependencies
*/
import { Fragment } from '@wordpress/element';
import { withSelect } from '@wordpress/data';
import { compose } from '@wordpress/compose';
/**
* Internal dependencies
*/
import HierarchicalTermSelector from './hierarchical-term-selector';
import FlatTermSelector from './flat-term-selector';
export function PostTaxonomies({
postType,
taxonomies,
taxonomyWrapper = identity
}) {
const availableTaxonomies = filter(taxonomies, taxonomy => includes(taxonomy.types, postType));
const visibleTaxonomies = filter(availableTaxonomies, taxonomy => taxonomy.visibility.show_ui);
return visibleTaxonomies.map(taxonomy => {
const TaxonomyComponent = taxonomy.hierarchical ? HierarchicalTermSelector : FlatTermSelector;
return createElement(Fragment, {
key: `taxonomy-${taxonomy.slug}`
}, taxonomyWrapper(createElement(TaxonomyComponent, {
slug: taxonomy.slug
}), taxonomy));
});
}
export default compose([withSelect(select => {
return {
postType: select('core/editor').getCurrentPostType(),
taxonomies: select('core').getTaxonomies({
per_page: -1
})
};
})])(PostTaxonomies);
//# sourceMappingURL=index.js.map