Add basic swap template functionality

[MAILPOET-6336]
This commit is contained in:
Rostislav Wolny
2024-12-04 13:25:03 +01:00
committed by Rostislav Wolný
parent 9f273a3ff2
commit 1fdda485d3
2 changed files with 21 additions and 2 deletions

View File

@ -20,6 +20,7 @@ import { useState } from '@wordpress/element';
*/ */
import { storeName } from '../../store'; import { storeName } from '../../store';
import { EditTemplateModal } from './edit-template-modal'; import { EditTemplateModal } from './edit-template-modal';
import { SelectTemplateModal } from '../template-select';
export function EmailTypeInfo() { export function EmailTypeInfo() {
const template = useSelect( const template = useSelect(
@ -28,6 +29,8 @@ export function EmailTypeInfo() {
); );
const [ isEditTemplateModalOpen, setEditTemplateModalOpen ] = const [ isEditTemplateModalOpen, setEditTemplateModalOpen ] =
useState( false ); useState( false );
const [ isSelectTemplateModalOpen, setSelectTemplateModalOpen ] =
useState( false );
return ( return (
<> <>
@ -79,6 +82,9 @@ export function EmailTypeInfo() {
</MenuItem> </MenuItem>
<MenuItem <MenuItem
onClick={ () => { onClick={ () => {
setSelectTemplateModalOpen(
true
);
onClose(); onClose();
} } } }
> >
@ -101,6 +107,14 @@ export function EmailTypeInfo() {
close={ () => setEditTemplateModalOpen( false ) } close={ () => setEditTemplateModalOpen( false ) }
/> />
) } ) }
{ isSelectTemplateModalOpen && (
<SelectTemplateModal
onSelectCallback={ () =>
setSelectTemplateModalOpen( false )
}
closeCallback={ () => setSelectTemplateModalOpen( false ) }
/>
) }
</> </>
); );
} }

View File

@ -17,7 +17,10 @@ import { storeName, TemplatePreview } from '../../store';
const BLANK_TEMPLATE = 'email-general'; const BLANK_TEMPLATE = 'email-general';
export function SelectTemplateModal( { onSelectCallback } ) { export function SelectTemplateModal( {
onSelectCallback,
closeCallback = null,
} ) {
const [ templates ] = usePreviewTemplates(); const [ templates ] = usePreviewTemplates();
const hasTemplates = templates?.length > 0; const hasTemplates = templates?.length > 0;
@ -46,7 +49,9 @@ export function SelectTemplateModal( { onSelectCallback } ) {
return ( return (
<Modal <Modal
title="Select a template" title="Select a template"
onRequestClose={ () => handleCloseWithoutSelection() } onRequestClose={ () =>
closeCallback ? closeCallback() : handleCloseWithoutSelection()
}
isFullScreen isFullScreen
> >
<div className="block-editor-block-patterns-explorer"> <div className="block-editor-block-patterns-explorer">