UNPKG

@wordpress/edit-post

Version:
49 lines (47 loc) 1.75 kB
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