@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
47 lines (42 loc) • 1.13 kB
JavaScript
/**
* External dependencies
*/
import { castArray, includes, isArray, get, some } from 'lodash';
/**
* WordPress dependencies
*/
import { withSelect } from '@wordpress/data';
export function ThemeSupportCheck({
themeSupports,
children,
postType,
supportKeys
}) {
const isSupported = some(castArray(supportKeys), key => {
const supported = get(themeSupports, [key], false); // 'post-thumbnails' can be boolean or an array of post types.
// In the latter case, we need to verify `postType` exists
// within `supported`. If `postType` isn't passed, then the check
// should fail.
if ('post-thumbnails' === key && isArray(supported)) {
return includes(supported, postType);
}
return supported;
});
if (!isSupported) {
return null;
}
return children;
}
export default withSelect(select => {
const {
getThemeSupports
} = select('core');
const {
getEditedPostAttribute
} = select('core/editor');
return {
postType: getEditedPostAttribute('type'),
themeSupports: getThemeSupports()
};
})(ThemeSupportCheck);
//# sourceMappingURL=index.js.map