Fix message displayed when a new segment is created
There was a bug and the code was displaying `Segment succesfully updated!` instead of `Segment succesfull added!` when the user created a new segment. This commit fixes this problem. The issue was that Number(match.params.id) returns `NaN` instead of `undefined` when there is no segment ID. So the check inside handleSave() was always calling messages.onUpdate(). Since the segment ID was never used. I replaced it with a boolean and renamed the variable from `segmentId` to `isNewSegment` to better indicate how it is used. [MAILPOET-5615]
This commit is contained in:
committed by
alex-mpoet
parent
125d5e9d1f
commit
f5a0b67e9f
@@ -27,6 +27,9 @@ export function Editor(): JSX.Element {
|
|||||||
};
|
};
|
||||||
}, [match.params.id, pageLoaded, pageUnloaded]);
|
}, [match.params.id, pageLoaded, pageUnloaded]);
|
||||||
|
|
||||||
|
const isNewSegment =
|
||||||
|
match.params.id === undefined || Number.isNaN(Number(match.params.id));
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Background color="#fff" />
|
<Background color="#fff" />
|
||||||
@@ -42,7 +45,7 @@ export function Editor(): JSX.Element {
|
|||||||
</Link>
|
</Link>
|
||||||
</Heading>
|
</Heading>
|
||||||
|
|
||||||
<Form segmentId={Number(match.params.id)} />
|
<Form isNewSegment={isNewSegment} />
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@@ -27,7 +27,7 @@ import {
|
|||||||
} from './types';
|
} from './types';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
segmentId?: number;
|
isNewSegment: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
const FiltersBefore = Hooks.applyFilters(
|
const FiltersBefore = Hooks.applyFilters(
|
||||||
@@ -43,7 +43,7 @@ const FilterAfter = Hooks.applyFilters(
|
|||||||
(): JSX.Element => <div className="mailpoet-gap" />,
|
(): JSX.Element => <div className="mailpoet-gap" />,
|
||||||
);
|
);
|
||||||
|
|
||||||
export function Form({ segmentId }: Props): JSX.Element {
|
export function Form({ isNewSegment }: Props): JSX.Element {
|
||||||
const segment: Segment = useSelect(
|
const segment: Segment = useSelect(
|
||||||
(select) => select(storeName).getSegment(),
|
(select) => select(storeName).getSegment(),
|
||||||
[],
|
[],
|
||||||
@@ -194,7 +194,7 @@ export function Form({ segmentId }: Props): JSX.Element {
|
|||||||
type="submit"
|
type="submit"
|
||||||
onClick={(e): void => {
|
onClick={(e): void => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
void handleSave(segmentId);
|
void handleSave(isNewSegment);
|
||||||
}}
|
}}
|
||||||
isDisabled={
|
isDisabled={
|
||||||
!isFormValid(segment.filters) ||
|
!isFormValid(segment.filters) ||
|
||||||
|
@@ -131,7 +131,7 @@ const messages = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
export function* handleSave(segmentId?: number): Generator<{
|
export function* handleSave(isNewSegment: boolean): Generator<{
|
||||||
type: string;
|
type: string;
|
||||||
segment?: AnyFormItem;
|
segment?: AnyFormItem;
|
||||||
}> {
|
}> {
|
||||||
@@ -147,10 +147,10 @@ export function* handleSave(segmentId?: number): Generator<{
|
|||||||
if (success) {
|
if (success) {
|
||||||
window.location.href = 'admin.php?page=mailpoet-segments#/segments';
|
window.location.href = 'admin.php?page=mailpoet-segments#/segments';
|
||||||
|
|
||||||
if (segmentId !== undefined) {
|
if (isNewSegment) {
|
||||||
messages.onUpdate();
|
|
||||||
} else {
|
|
||||||
messages.onCreate(segment);
|
messages.onCreate(segment);
|
||||||
|
} else {
|
||||||
|
messages.onUpdate();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
yield setErrors(error as string[]);
|
yield setErrors(error as string[]);
|
||||||
|
@@ -64,7 +64,7 @@ class CreateSegmentEmailAbsoluteCountCest {
|
|||||||
$i->fillField('[data-automation-id="segment-number-of-days"]', 3);
|
$i->fillField('[data-automation-id="segment-number-of-days"]', 3);
|
||||||
$i->waitForText('This segment has 2 subscribers');
|
$i->waitForText('This segment has 2 subscribers');
|
||||||
$i->click('Save');
|
$i->click('Save');
|
||||||
$i->waitForNoticeAndClose('Segment successfully updated!');
|
$i->waitForNoticeAndClose('Segment successfully added!');
|
||||||
|
|
||||||
$i->wantTo('Edit the segment');
|
$i->wantTo('Edit the segment');
|
||||||
$i->amOnMailpoetPage('Segments');
|
$i->amOnMailpoetPage('Segments');
|
||||||
|
@@ -92,7 +92,7 @@ class ManageSegmentsCest {
|
|||||||
$i->waitForText('This segment has 3 subscribers');
|
$i->waitForText('This segment has 3 subscribers');
|
||||||
$i->waitForElementClickable('button[type="submit"]');
|
$i->waitForElementClickable('button[type="submit"]');
|
||||||
$i->click('Save');
|
$i->click('Save');
|
||||||
$i->waitForNoticeAndClose('Segment successfully updated!');
|
$i->waitForNoticeAndClose('Segment successfully added!');
|
||||||
$i->waitForText($segmentTitle);
|
$i->waitForText($segmentTitle);
|
||||||
|
|
||||||
$i->wantTo('Edit existing segment');
|
$i->wantTo('Edit existing segment');
|
||||||
|
Reference in New Issue
Block a user