diff --git a/mailpoet/assets/js/src/email-editor/engine/components/sidebar/template-select/select-modal.tsx b/mailpoet/assets/js/src/email-editor/engine/components/sidebar/template-select/select-modal.tsx index 0fabf68fe3..68229747a7 100644 --- a/mailpoet/assets/js/src/email-editor/engine/components/sidebar/template-select/select-modal.tsx +++ b/mailpoet/assets/js/src/email-editor/engine/components/sidebar/template-select/select-modal.tsx @@ -1,6 +1,8 @@ // eslint-disable-next-line @typescript-eslint/no-unused-vars // @ts-expect-error No types available for this component import { BlockPreview } from '@wordpress/block-editor'; +import { store as editorStore } from '@wordpress/editor'; +import { dispatch } from '@wordpress/data'; import { Modal } from '@wordpress/components'; import { Async } from 'email-editor/engine/components/sidebar/template-select/async'; import { getTemplatesForPreview } from './templates-data'; @@ -10,6 +12,12 @@ export function SelectTemplateModal({ isOpen, setIsOpen }) { return null; } const templates = getTemplatesForPreview(); + + const handleTemplateSelection = (template) => { + setIsOpen(false); + void dispatch(editorStore).resetEditorBlocks(template.patternParsed); + }; + return ( // eslint-disable-next-line @typescript-eslint/no-unsafe-return setIsOpen(false)}> @@ -17,11 +25,22 @@ export function SelectTemplateModal({ isOpen, setIsOpen }) {

{`Template ${template.id}`}

{ + handleTemplateSelection(template); + }} + onKeyPress={(event) => { + if (event.key === 'Enter' || event.key === ' ') { + handleTemplateSelection(template); + } }} > rendering template

}> diff --git a/mailpoet/assets/js/src/email-editor/engine/components/sidebar/template-select/templates-data.ts b/mailpoet/assets/js/src/email-editor/engine/components/sidebar/template-select/templates-data.ts index 9ed7bd330b..94f15f426e 100644 --- a/mailpoet/assets/js/src/email-editor/engine/components/sidebar/template-select/templates-data.ts +++ b/mailpoet/assets/js/src/email-editor/engine/components/sidebar/template-select/templates-data.ts @@ -54,8 +54,8 @@ export function getTemplatesForPreview() { return { id: template.id, contentParsed: parse(fullContent), + patternParsed: parse(contentPattern), template, - pattern: contentPattern, }; }); }