@wordpress/edit-post
Version:
Edit Post module for WordPress.
64 lines (58 loc) • 1.77 kB
JavaScript
import { createElement } from "@wordpress/element";
/**
* External dependencies
*/
import { get, partial } from 'lodash';
/**
* WordPress dependencies
*/
import { __ } from '@wordpress/i18n';
import { PanelBody, PanelRow } from '@wordpress/components';
import { store as editorStore, PageAttributesCheck, PageAttributesOrder, PageAttributesParent } from '@wordpress/editor';
import { useSelect, useDispatch } from '@wordpress/data';
import { store as coreStore } from '@wordpress/core-data';
/**
* Internal dependencies
*/
import { store as editPostStore } from '../../../store';
/**
* Module Constants
*/
const PANEL_NAME = 'page-attributes';
export function PageAttributes() {
const {
isEnabled,
isOpened,
postType
} = useSelect(select => {
const {
getEditedPostAttribute
} = select(editorStore);
const {
isEditorPanelEnabled,
isEditorPanelOpened
} = select(editPostStore);
const {
getPostType
} = select(coreStore);
return {
isEnabled: isEditorPanelEnabled(PANEL_NAME),
isOpened: isEditorPanelOpened(PANEL_NAME),
postType: getPostType(getEditedPostAttribute('type'))
};
}, []);
const {
toggleEditorPanelOpened
} = useDispatch(editPostStore);
if (!isEnabled || !postType) {
return null;
}
const onTogglePanel = partial(toggleEditorPanelOpened, PANEL_NAME);
return createElement(PageAttributesCheck, null, createElement(PanelBody, {
title: get(postType, ['labels', 'attributes'], __('Page attributes')),
opened: isOpened,
onToggle: onTogglePanel
}, createElement(PageAttributesParent, null), createElement(PanelRow, null, createElement(PageAttributesOrder, null))));
}
export default PageAttributes;
//# sourceMappingURL=index.js.map