diff --git a/packages/edit-post/src/components/header/index.js b/packages/edit-post/src/components/header/index.js index b76b89ff7673d..d72795ee24971 100644 --- a/packages/edit-post/src/components/header/index.js +++ b/packages/edit-post/src/components/header/index.js @@ -79,7 +79,7 @@ function Header( { setEntitiesSavedStatesCallback } ) { hasActiveMetaboxes: select( editPostStore ).hasMetaBoxes(), hasHistory: !! select( editorStore ).getEditorSettings().goBack, isEditingTemplate: - select( editorStore ).getRenderingMode() === 'template-only', + select( editorStore ).getCurrentPostType() === 'wp_template', isPublishSidebarOpened: select( editPostStore ).isPublishSidebarOpened(), hasFixedToolbar: getPreference( 'core', 'fixedToolbar' ), @@ -159,7 +159,7 @@ function Header( { setEntitiesSavedStatesCallback } ) { isLargeViewport, } ) } > - { ( isEditingTemplate || hasHistory ) && } + { hasHistory && } { - const { documentLabel, isTemplateMode } = useSelect( ( select ) => { - const { getPostTypeLabel, getRenderingMode } = select( editorStore ); + const { documentLabel } = useSelect( ( select ) => { + const { getPostTypeLabel } = select( editorStore ); return { // translators: Default label for the Document sidebar tab, not selected. documentLabel: getPostTypeLabel() || _x( 'Document', 'noun' ), - isTemplateMode: getRenderingMode() === 'template-only', }; }, [] ); return ( - - { isTemplateMode ? __( 'Template' ) : documentLabel } - + { documentLabel } { /* translators: Text label for the Block Settings Sidebar tab. */ } { __( 'Block' ) } diff --git a/packages/edit-post/src/components/sidebar/settings-sidebar/index.js b/packages/edit-post/src/components/sidebar/settings-sidebar/index.js index 0cd69cb11538c..44900fff3f7be 100644 --- a/packages/edit-post/src/components/sidebar/settings-sidebar/index.js +++ b/packages/edit-post/src/components/sidebar/settings-sidebar/index.js @@ -48,7 +48,7 @@ export const sidebars = { const SidebarContent = ( { sidebarName, keyboardShortcut, - isTemplateMode, + isEditingTemplate, } ) => { // Because `PluginSidebarEditPost` renders a `ComplementaryArea`, we // need to forward the `Tabs` context so it can be passed through the @@ -77,7 +77,7 @@ const SidebarContent = ( { > - { ! isTemplateMode && ( + { ! isEditingTemplate && ( <> @@ -90,7 +90,7 @@ const SidebarContent = ( { ) } - { isTemplateMode && } + { isEditingTemplate && } @@ -105,7 +105,7 @@ const SettingsSidebar = () => { sidebarName, isSettingsSidebarActive, keyboardShortcut, - isTemplateMode, + isEditingTemplate, } = useSelect( ( select ) => { // The settings sidebar is used by the edit-post/document and edit-post/block sidebars. // sidebarName represents the sidebar that is active or that should be active when the SettingsSidebar toggle button is pressed. @@ -132,8 +132,8 @@ const SettingsSidebar = () => { sidebarName: sidebar, isSettingsSidebarActive: isSettingsSidebar, keyboardShortcut: shortcut, - isTemplateMode: - select( editorStore ).getRenderingMode() === 'template-only', + isEditingTemplate: + select( editorStore ).getCurrentPostType() === 'wp_template', }; }, [] ); @@ -161,7 +161,7 @@ const SettingsSidebar = () => { ); diff --git a/packages/edit-post/src/components/sidebar/template-summary/index.js b/packages/edit-post/src/components/sidebar/template-summary/index.js index 30358038ffb5b..6e770eac872a4 100644 --- a/packages/edit-post/src/components/sidebar/template-summary/index.js +++ b/packages/edit-post/src/components/sidebar/template-summary/index.js @@ -4,16 +4,12 @@ import { Icon, layout } from '@wordpress/icons'; import { useSelect } from '@wordpress/data'; import { Flex, FlexItem, FlexBlock, PanelBody } from '@wordpress/components'; - -/** - * Internal dependencies - */ -import { store as editPostStore } from '../../../store'; +import { store as editorStore } from '@wordpress/editor'; function TemplateSummary() { const template = useSelect( ( select ) => { - const { getEditedPostTemplate } = select( editPostStore ); - return getEditedPostTemplate(); + const { getCurrentPost } = select( editorStore ); + return getCurrentPost(); }, [] ); if ( ! template ) { diff --git a/packages/edit-post/src/components/visual-editor/index.js b/packages/edit-post/src/components/visual-editor/index.js index fd9b4a6ff8bb6..3f4cb3d87cffc 100644 --- a/packages/edit-post/src/components/visual-editor/index.js +++ b/packages/edit-post/src/components/visual-editor/index.js @@ -30,15 +30,18 @@ export default function VisualEditor( { styles } ) { renderingMode, isBlockBasedTheme, hasV3BlocksOnly, + isEditingTemplate, } = useSelect( ( select ) => { const { isFeatureActive } = select( editPostStore ); - const { getEditorSettings, getRenderingMode } = select( editorStore ); + const { getEditorSettings, getRenderingMode, getCurrentPostType } = + select( editorStore ); const { getBlockTypes } = select( blocksStore ); const editorSettings = getEditorSettings(); return { isWelcomeGuideVisible: isFeatureActive( 'welcomeGuide' ), renderingMode: getRenderingMode(), + isEditingTemplate: getCurrentPostType() === 'wp_template', isBlockBasedTheme: editorSettings.__unstableIsBlockBasedTheme, hasV3BlocksOnly: getBlockTypes().every( ( type ) => { return type.apiVersion >= 3; @@ -74,12 +77,12 @@ export default function VisualEditor( { styles } ) { const isToBeIframed = ( ( hasV3BlocksOnly || ( isGutenbergPlugin && isBlockBasedTheme ) ) && ! hasMetaBoxes ) || - renderingMode === 'template-only'; + isEditingTemplate; return (
diff --git a/packages/edit-post/src/components/welcome-guide/index.js b/packages/edit-post/src/components/welcome-guide/index.js index 9543fde137308..56c4f499043e4 100644 --- a/packages/edit-post/src/components/welcome-guide/index.js +++ b/packages/edit-post/src/components/welcome-guide/index.js @@ -12,17 +12,17 @@ import WelcomeGuideTemplate from './template'; import { store as editPostStore } from '../../store'; export default function WelcomeGuide() { - const { isActive, isTemplateMode } = useSelect( ( select ) => { + const { isActive, isEditingTemplate } = useSelect( ( select ) => { const { isFeatureActive } = select( editPostStore ); - const { getRenderingMode } = select( editorStore ); - const _isTemplateMode = getRenderingMode() === 'template-only'; - const feature = _isTemplateMode + const { getCurrentPostType } = select( editorStore ); + const _isEditingTemplate = getCurrentPostType() === 'wp_template'; + const feature = _isEditingTemplate ? 'welcomeGuideTemplate' : 'welcomeGuide'; return { isActive: isFeatureActive( feature ), - isTemplateMode: _isTemplateMode, + isEditingTemplate: _isEditingTemplate, }; }, [] ); @@ -30,5 +30,9 @@ export default function WelcomeGuide() { return null; } - return isTemplateMode ? : ; + return isEditingTemplate ? ( + + ) : ( + + ); } diff --git a/packages/edit-post/src/plugins/welcome-guide-menu-item/index.js b/packages/edit-post/src/plugins/welcome-guide-menu-item/index.js index e43f7910b5ffc..c454fee8588db 100644 --- a/packages/edit-post/src/plugins/welcome-guide-menu-item/index.js +++ b/packages/edit-post/src/plugins/welcome-guide-menu-item/index.js @@ -7,16 +7,16 @@ import { __ } from '@wordpress/i18n'; import { store as editorStore } from '@wordpress/editor'; export default function WelcomeGuideMenuItem() { - const isTemplateMode = useSelect( + const isEditingTemplate = useSelect( ( select ) => - select( editorStore ).getRenderingMode() === 'template-only', + select( editorStore ).getCurrentPostType() === 'wp_template', [] ); return ( ); diff --git a/packages/edit-post/src/store/actions.js b/packages/edit-post/src/store/actions.js index a4ca78f95e59c..7a7bb187f3fb8 100644 --- a/packages/edit-post/src/store/actions.js +++ b/packages/edit-post/src/store/actions.js @@ -498,15 +498,6 @@ export function setIsEditingTemplate() { return { type: 'NOTHING' }; } -/** - * Switches to the template mode. - */ -export const __unstableSwitchToTemplateMode = - () => - ( { registry } ) => { - registry.dispatch( editorStore ).setRenderingMode( 'template-only' ); - }; - /** * Create a block based template. * diff --git a/packages/editor/src/components/document-bar/index.js b/packages/editor/src/components/document-bar/index.js index fdf9cbe55dbca..3ab50be2d8e51 100644 --- a/packages/editor/src/components/document-bar/index.js +++ b/packages/editor/src/components/document-bar/index.js @@ -48,27 +48,15 @@ const icons = { }; export default function DocumentBar() { - const { - isEditingTemplate, - templateId, - postType, - postId, - goBack, - getEditorSettings, - } = useSelect( ( select ) => { + const { postType, postId, goBack } = useSelect( ( select ) => { const { - getRenderingMode, - getCurrentTemplateId, getCurrentPostId, getCurrentPostType, getEditorSettings: getSettings, } = select( editorStore ); - const _templateId = getCurrentTemplateId(); const back = getSettings().goBack; + return { - isEditingTemplate: - !! _templateId && getRenderingMode() === 'template-only', - templateId: _templateId, postType: getCurrentPostType(), postId: getCurrentPostId(), goBack: typeof back === 'function' ? back : undefined, @@ -76,13 +64,7 @@ export default function DocumentBar() { }; }, [] ); - const { setRenderingMode } = useDispatch( editorStore ); - const handleOnBack = () => { - if ( isEditingTemplate ) { - setRenderingMode( getEditorSettings().defaultRenderingMode ); - return; - } if ( goBack ) { goBack(); } @@ -90,9 +72,9 @@ export default function DocumentBar() { return ( ); } diff --git a/packages/editor/src/components/editor-canvas/index.js b/packages/editor/src/components/editor-canvas/index.js index e5e663f821a64..db187aabdacf6 100644 --- a/packages/editor/src/components/editor-canvas/index.js +++ b/packages/editor/src/components/editor-canvas/index.js @@ -91,7 +91,7 @@ function EditorCanvas( { wrapperBlockName, wrapperUniqueId, deviceType, - hasHistory, + showEditorPadding, } = useSelect( ( select ) => { const { getCurrentPostId, @@ -138,7 +138,8 @@ function EditorCanvas( { wrapperBlockName: _wrapperBlockName, wrapperUniqueId: getCurrentPostId(), deviceType: getDeviceType(), - hasHistory: !! editorSettings.goBack, + showEditorPadding: + !! editorSettings.goBack && postTypeSlug !== 'wp_template', }; }, [] ); const { isCleanNewPost } = useSelect( editorStore ); @@ -302,7 +303,7 @@ function EditorCanvas( { height="100%" iframeProps={ { className: classnames( 'editor-canvas__iframe', { - 'has-history': hasHistory, + 'has-editor-padding': showEditorPadding, } ), ...iframeProps, style: { diff --git a/packages/editor/src/components/editor-canvas/style.scss b/packages/editor/src/components/editor-canvas/style.scss index d5baf48012452..1474dff2c1699 100644 --- a/packages/editor/src/components/editor-canvas/style.scss +++ b/packages/editor/src/components/editor-canvas/style.scss @@ -1,5 +1,5 @@ .editor-canvas__iframe { - &.has-history { + &.has-editor-padding { padding: $grid-unit-60 $grid-unit-60 0; } } diff --git a/packages/editor/src/components/post-template/block-theme.js b/packages/editor/src/components/post-template/block-theme.js index dcd269af1a431..d63a99e99ad38 100644 --- a/packages/editor/src/components/post-template/block-theme.js +++ b/packages/editor/src/components/post-template/block-theme.js @@ -24,10 +24,13 @@ const POPOVER_PROPS = { }; export default function BlockThemeControl( { id } ) { - const { isTemplateHidden } = useSelect( ( select ) => { + const { isTemplateHidden, getPostLinkProps } = useSelect( ( select ) => { + const { getEditorSettings } = select( editorStore ); const { getRenderingMode } = unlock( select( editorStore ) ); + return { isTemplateHidden: getRenderingMode() === 'post-only', + getPostLinkProps: getEditorSettings().getPostLinkProps, }; }, [] ); const { editedRecord: template, hasResolved } = useEntityRecord( @@ -35,9 +38,16 @@ export default function BlockThemeControl( { id } ) { 'wp_template', id ); - const { getEditorSettings } = useSelect( editorStore ); + const { createSuccessNotice } = useDispatch( noticesStore ); const { setRenderingMode } = useDispatch( editorStore ); + const editTemplate = getPostLinkProps + ? getPostLinkProps( { + postId: template.wp_id, + postType: 'wp_template', + canvas: 'edit', + } ) + : {}; if ( ! hasResolved ) { return null; @@ -58,8 +68,8 @@ export default function BlockThemeControl( { id } ) { <> { - setRenderingMode( 'template-only' ); + onClick={ ( event ) => { + editTemplate.onClick( event ); onClose(); createSuccessNotice( __( @@ -67,16 +77,6 @@ export default function BlockThemeControl( { id } ) { ), { type: 'snackbar', - actions: [ - { - label: __( 'Go back' ), - onClick: () => - setRenderingMode( - getEditorSettings() - .defaultRenderingMode - ), - }, - ], } ); } }