From 6ac7015b5c1c5be06819c076df11e9be318cbac4 Mon Sep 17 00:00:00 2001 From: Pavel Dohnal Date: Mon, 13 Sep 2021 12:49:54 +0200 Subject: [PATCH] Save the re-engagement email [MAILPOET-3763] --- .../types/re_engagement/re_engagement.tsx | 36 +++++++++++++++++-- lib/Config/Populator.php | 23 ++++++++---- lib/Entities/NewsletterEntity.php | 1 + views/newsletter/editor.html | 1 + 4 files changed, 52 insertions(+), 9 deletions(-) diff --git a/assets/js/src/newsletters/types/re_engagement/re_engagement.tsx b/assets/js/src/newsletters/types/re_engagement/re_engagement.tsx index 801b1bbb58..e3b687e16b 100644 --- a/assets/js/src/newsletters/types/re_engagement/re_engagement.tsx +++ b/assets/js/src/newsletters/types/re_engagement/re_engagement.tsx @@ -1,12 +1,15 @@ import React, { useState } from 'react'; import { __, assoc, compose } from 'lodash/fp'; +import { useHistory } from 'react-router-dom'; import MailPoet from 'mailpoet'; import Background from 'common/background/background'; import { Grid } from 'common/grid'; import Button from 'common/button/button'; -import ListingHeadingStepsRoute from '../../listings/heading_steps_route'; +import APIErrorsNotice from 'notices/api_errors_notice'; + import { Scheduling } from './scheduling'; +import ListingHeadingStepsRoute from '../../listings/heading_steps_route'; interface ReengagementWindow extends Window { settings: { @@ -23,10 +26,39 @@ export function NewsletterTypeReEngagement(): JSX.Element { ).toString(), afterTimeType: 'months', }); + const [errors, setErrors] = useState([]); + const history = useHistory(); + + function showTemplateSelection(newsletterId: string) { + history.push(`/template/${newsletterId}`); + } + + function handleNext() { + setErrors([]); + MailPoet.Ajax.post({ + api_version: MailPoet.apiVersion, + endpoint: 'newsletters', + action: 'create', + data: { + type: 're_engagement', + subject: MailPoet.I18n.t('draftNewsletterTitle'), + options, + }, + }).done((response) => { + showTemplateSelection(response.data.id); + }).fail((response) => { + if (response.errors) { + setErrors(response.errors); + } + }); + } + return (
+ {errors && ()} + @@ -42,7 +74,7 @@ export function NewsletterTypeReEngagement(): JSX.Element {