@wordpress/edit-post
Version:
Edit Post module for WordPress.
49 lines (47 loc) • 1.75 kB
JavaScript
import { createElement, Fragment } from "@wordpress/element";
/**
* WordPress dependencies
*/
import { Icon, MenuGroup } from '@wordpress/components';
import { PostPreviewButton } from '@wordpress/editor';
import { external } from '@wordpress/icons';
import { __ } from '@wordpress/i18n';
import { __experimentalPreviewOptions as PreviewOptions } from '@wordpress/block-editor';
import { useDispatch, useSelect } from '@wordpress/data';
/**
* Internal dependencies
*/
import { store as editPostStore } from '../../store';
export default function DevicePreview() {
const {
hasActiveMetaboxes,
isPostSaveable,
isSaving,
deviceType
} = useSelect(select => ({
hasActiveMetaboxes: select(editPostStore).hasMetaBoxes(),
isSaving: select(editPostStore).isSavingMetaBoxes(),
isPostSaveable: select('core/editor').isEditedPostSaveable(),
deviceType: select(editPostStore).__experimentalGetPreviewDeviceType()
}), []);
const {
__experimentalSetPreviewDeviceType: setPreviewDeviceType
} = useDispatch(editPostStore);
return createElement(PreviewOptions, {
isEnabled: isPostSaveable,
className: "edit-post-post-preview-dropdown",
deviceType: deviceType,
setDeviceType: setPreviewDeviceType
}, createElement(MenuGroup, null, createElement("div", {
className: "edit-post-header-preview__grouping-external"
}, createElement(PostPreviewButton, {
className: 'edit-post-header-preview__button-external',
role: "menuitem",
forceIsAutosaveable: hasActiveMetaboxes,
forcePreviewLink: isSaving ? null : undefined,
textContent: createElement(Fragment, null, __('Preview in new tab'), createElement(Icon, {
icon: external
}))
}))));
}
//# sourceMappingURL=index.js.map