From 6ffaf6a6162ec4ca4c72c827c49c8e2ad8bc7482 Mon Sep 17 00:00:00 2001 From: Guillaume Date: Mon, 5 Feb 2024 16:08:16 +0100 Subject: [PATCH] Fix newsletter choice being sent at loading time --- pages/account/notifications.tsx | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/pages/account/notifications.tsx b/pages/account/notifications.tsx index eb05648d..a659ed71 100644 --- a/pages/account/notifications.tsx +++ b/pages/account/notifications.tsx @@ -21,7 +21,12 @@ const AccountNotifications: FunctionComponent = function () { const { isAuth, user, isLoading: isAuthLoading, getIdToken } = useAuth(); const router = useRouter(); const { data: emailingData } = useCurrentUserEmailing(); - const { register: registerFormField, setValue, control } = useForm(); + const { + register: registerFormField, + setValue, + control, + formState: { touchedFields, isDirty } + } = useForm(); const data = useWatch({ control }); useEffect(() => { @@ -36,9 +41,18 @@ const AccountNotifications: FunctionComponent = function () { useEffect(() => { if (emailingData) { - setValue('newsletter', emailingData.newsletter); - setValue('productUpdates', emailingData.productUpdates); - setValue('coursePreview', emailingData.coursePreview); + setValue('newsletter', emailingData.newsletter, { + shouldDirty: false, + shouldTouch: false + }); + setValue('productUpdates', emailingData.productUpdates, { + shouldDirty: false, + shouldTouch: false + }); + setValue('coursePreview', emailingData.coursePreview, { + shouldDirty: false, + shouldTouch: false + }); } }, [emailingData]); @@ -69,10 +83,11 @@ const AccountNotifications: FunctionComponent = function () { }); useEffect(() => { - if (data) { + console.log(isDirty); + if (data && isDirty) { updateEmailing(data as EmailingStatuses); } - }, [data]); + }, [data, isDirty]); return (