Use current email content when previewing templates when swapping

[MAILPOET-6336]
This commit is contained in:
Rostislav Wolny
2024-12-04 13:59:51 +01:00
committed by Rostislav Wolný
parent 1fdda485d3
commit 10b2c2b648
4 changed files with 50 additions and 25 deletions

View File

@@ -23,8 +23,11 @@ import { EditTemplateModal } from './edit-template-modal';
import { SelectTemplateModal } from '../template-select';
export function EmailTypeInfo() {
const template = useSelect(
( select ) => select( storeName ).getCurrentTemplate(),
const { template, currentEmailContent } = useSelect(
( select ) => ( {
template: select( storeName ).getCurrentTemplate(),
currentEmailContent: select( storeName ).getEditedEmailContent(),
} ),
[]
);
const [ isEditTemplateModalOpen, setEditTemplateModalOpen ] =
@@ -113,6 +116,7 @@ export function EmailTypeInfo() {
setSelectTemplateModalOpen( false )
}
closeCallback={ () => setSelectTemplateModalOpen( false ) }
previewContent={ currentEmailContent }
/>
) }
</>

View File

@@ -20,15 +20,20 @@ const BLANK_TEMPLATE = 'email-general';
export function SelectTemplateModal( {
onSelectCallback,
closeCallback = null,
previewContent = '',
} ) {
const [ templates ] = usePreviewTemplates();
const [ templates ] = usePreviewTemplates( previewContent );
const hasTemplates = templates?.length > 0;
const handleTemplateSelection = ( template: TemplatePreview ) => {
void dispatch( editorStore ).resetEditorBlocks(
template.patternParsed
);
// When we provide previewContent, we don't want to reset the blocks
if ( ! previewContent ) {
void dispatch( editorStore ).resetEditorBlocks(
template.emailParsed
);
}
void dispatch( storeName ).setTemplateToPost(
template.slug,
template.template.mailpoet_email_theme ?? {}
@@ -100,7 +105,9 @@ export function SelectTemplateModal( {
}
>
<BlockPreview
blocks={ template.contentParsed }
blocks={
template.previewContentParsed
}
viewportWidth={ 900 }
minHeight={ 300 }
additionalStyles={ [