From ae1a80ea25f9149caa00b3272af2d95a5c4e3b3f Mon Sep 17 00:00:00 2001 From: Pavel Dohnal Date: Mon, 29 Mar 2021 13:23:42 +0200 Subject: [PATCH] Avoid unnecesary loads [MAILPOET-3476] --- .../dynamic/dynamic_segments_filters/email.tsx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/assets/js/src/segments/dynamic/dynamic_segments_filters/email.tsx b/assets/js/src/segments/dynamic/dynamic_segments_filters/email.tsx index 9b40191f97..ed2f47a887 100644 --- a/assets/js/src/segments/dynamic/dynamic_segments_filters/email.tsx +++ b/assets/js/src/segments/dynamic/dynamic_segments_filters/email.tsx @@ -31,12 +31,12 @@ export function validateEmail(formItems: EmailFormItem): boolean { return ((formItems.action in EmailActionTypes) && !!formItems.newsletter_id); } -const shouldDisplayLinks = (item: EmailFormItem): boolean => ( +const shouldDisplayLinks = (itemAction: string, itemNewsletterId?: string): boolean => ( ( - (item.action === EmailActionTypes.CLICKED) - || (item.action === EmailActionTypes.NOT_CLICKED) + (itemAction === EmailActionTypes.CLICKED) + || (itemAction === EmailActionTypes.NOT_CLICKED) ) - && (item.newsletter_id != null) + && (itemNewsletterId != null) ); const newsletterOptions = SegmentFormData.newslettersList?.map((newsletter) => { @@ -78,14 +78,14 @@ export const EmailFields: React.FunctionComponent = ({ onChange, item }) } const loadLinksCB = useCallback(() => { - if (!shouldDisplayLinks(item)) return; + if (!shouldDisplayLinks(item.action, item.newsletter_id)) return; setLinks([]); loadLinks(item.newsletter_id); - }, [item]); + }, [item.action, item.newsletter_id]); useEffect(() => { loadLinksCB(); - }, [loadLinksCB, item]); + }, [loadLinksCB, item.action, item.newsletter_id]); return ( <> @@ -107,7 +107,7 @@ export const EmailFields: React.FunctionComponent = ({ onChange, item }) { - (!!links.length && shouldDisplayLinks(item)) + (!!links.length && shouldDisplayLinks(item.action, item.newsletter_id)) && (