diff --git a/mailpoet/assets/js/src/segments/dynamic/editor.tsx b/mailpoet/assets/js/src/segments/dynamic/editor.tsx index 3e1e4b3fa2..1bbd8fd77a 100644 --- a/mailpoet/assets/js/src/segments/dynamic/editor.tsx +++ b/mailpoet/assets/js/src/segments/dynamic/editor.tsx @@ -27,6 +27,9 @@ export function Editor(): JSX.Element { }; }, [match.params.id, pageLoaded, pageUnloaded]); + const isNewSegment = + match.params.id === undefined || Number.isNaN(Number(match.params.id)); + return ( <> @@ -42,7 +45,7 @@ export function Editor(): JSX.Element { -
+ ); } diff --git a/mailpoet/assets/js/src/segments/dynamic/form.tsx b/mailpoet/assets/js/src/segments/dynamic/form.tsx index ab4182fbb4..6d27777a94 100644 --- a/mailpoet/assets/js/src/segments/dynamic/form.tsx +++ b/mailpoet/assets/js/src/segments/dynamic/form.tsx @@ -27,7 +27,7 @@ import { } from './types'; interface Props { - segmentId?: number; + isNewSegment: boolean; } const FiltersBefore = Hooks.applyFilters( @@ -43,7 +43,7 @@ const FilterAfter = Hooks.applyFilters( (): JSX.Element =>
, ); -export function Form({ segmentId }: Props): JSX.Element { +export function Form({ isNewSegment }: Props): JSX.Element { const segment: Segment = useSelect( (select) => select(storeName).getSegment(), [], @@ -194,7 +194,7 @@ export function Form({ segmentId }: Props): JSX.Element { type="submit" onClick={(e): void => { e.preventDefault(); - void handleSave(segmentId); + void handleSave(isNewSegment); }} isDisabled={ !isFormValid(segment.filters) || diff --git a/mailpoet/assets/js/src/segments/dynamic/store/actions.ts b/mailpoet/assets/js/src/segments/dynamic/store/actions.ts index 27589cc63a..24ade428e7 100644 --- a/mailpoet/assets/js/src/segments/dynamic/store/actions.ts +++ b/mailpoet/assets/js/src/segments/dynamic/store/actions.ts @@ -131,7 +131,7 @@ const messages = { }, }; -export function* handleSave(segmentId?: number): Generator<{ +export function* handleSave(isNewSegment: boolean): Generator<{ type: string; segment?: AnyFormItem; }> { @@ -147,10 +147,10 @@ export function* handleSave(segmentId?: number): Generator<{ if (success) { window.location.href = 'admin.php?page=mailpoet-segments#/segments'; - if (segmentId !== undefined) { - messages.onUpdate(); - } else { + if (isNewSegment) { messages.onCreate(segment); + } else { + messages.onUpdate(); } } else { yield setErrors(error as string[]); diff --git a/mailpoet/tests/acceptance/Segments/CreateSegmentEmailAbsoluteCountCest.php b/mailpoet/tests/acceptance/Segments/CreateSegmentEmailAbsoluteCountCest.php index 9905200ecb..bd657dca9d 100644 --- a/mailpoet/tests/acceptance/Segments/CreateSegmentEmailAbsoluteCountCest.php +++ b/mailpoet/tests/acceptance/Segments/CreateSegmentEmailAbsoluteCountCest.php @@ -64,7 +64,7 @@ class CreateSegmentEmailAbsoluteCountCest { $i->fillField('[data-automation-id="segment-number-of-days"]', 3); $i->waitForText('This segment has 2 subscribers'); $i->click('Save'); - $i->waitForNoticeAndClose('Segment successfully updated!'); + $i->waitForNoticeAndClose('Segment successfully added!'); $i->wantTo('Edit the segment'); $i->amOnMailpoetPage('Segments'); diff --git a/mailpoet/tests/acceptance/Segments/ManageSegmentsCest.php b/mailpoet/tests/acceptance/Segments/ManageSegmentsCest.php index dddded8323..4cb33edc50 100644 --- a/mailpoet/tests/acceptance/Segments/ManageSegmentsCest.php +++ b/mailpoet/tests/acceptance/Segments/ManageSegmentsCest.php @@ -92,7 +92,7 @@ class ManageSegmentsCest { $i->waitForText('This segment has 3 subscribers'); $i->waitForElementClickable('button[type="submit"]'); $i->click('Save'); - $i->waitForNoticeAndClose('Segment successfully updated!'); + $i->waitForNoticeAndClose('Segment successfully added!'); $i->waitForText($segmentTitle); $i->wantTo('Edit existing segment');