diff --git a/packages/edit-post/src/components/sidebar/template/actions.js b/packages/edit-post/src/components/sidebar/template/actions.js index 2568f4881f3b2..c547ba0bb8d6a 100644 --- a/packages/edit-post/src/components/sidebar/template/actions.js +++ b/packages/edit-post/src/components/sidebar/template/actions.js @@ -1,7 +1,7 @@ /** * External dependencies */ -import { kebabCase } from 'lodash'; +import { kebabCase, pickBy } from 'lodash'; /** * WordPress dependencies @@ -28,23 +28,29 @@ import { createBlock, serialize } from '@wordpress/blocks'; function PostTemplateActions() { const [ isModalOpen, setIsModalOpen ] = useState( false ); const [ title, setTitle ] = useState( '' ); - const { template, supportsTemplateMode } = useSelect( ( select ) => { - const { getCurrentPostType } = select( editorStore ); - const { getPostType } = select( coreStore ); - const { getEditedPostTemplate } = select( editPostStore ); + const { template, supportsTemplateMode, editorSettings } = useSelect( + ( select ) => { + const { getCurrentPostType } = select( editorStore ); + const { getPostType } = select( coreStore ); + const { getEditedPostTemplate } = select( editPostStore ); + const settings = select( editorStore ).getEditorSettings(); - const isViewable = - getPostType( getCurrentPostType() )?.viewable ?? false; - const _supportsTemplateMode = - select( editorStore ).getEditorSettings().supportsTemplateMode && - isViewable; + const isViewable = + getPostType( getCurrentPostType() )?.viewable ?? false; + const _supportsTemplateMode = + settings.supportsTemplateMode && isViewable; - return { - template: _supportsTemplateMode && getEditedPostTemplate(), - supportsTemplateMode: _supportsTemplateMode, - }; - }, [] ); + return { + template: _supportsTemplateMode && getEditedPostTemplate(), + supportsTemplateMode: _supportsTemplateMode, + editorSettings: settings, + }; + }, + [] + ); const { __unstableSwitchToTemplateMode } = useDispatch( editPostStore ); + const { deleteEntityRecord } = useDispatch( 'core' ); + const { updateEditorSettings, editPost } = useDispatch( editorStore ); if ( ! supportsTemplateMode ) { return null; @@ -53,6 +59,43 @@ function PostTemplateActions() { return ( <>
+ { !! ( template && template.wp_id ) && ( + + ) } { !! template && (