From 1b103c653f11b90062c20cd69ba9bba3cb77571b Mon Sep 17 00:00:00 2001 From: Oluwaseun Olorunsola Date: Wed, 6 Jul 2022 13:12:15 +0100 Subject: [PATCH] Fix: Only start polling the server on success response MAILPOET-4300 --- .../common/authorize_sender_email_modal.tsx | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/mailpoet/assets/js/src/common/authorize_sender_email_modal.tsx b/mailpoet/assets/js/src/common/authorize_sender_email_modal.tsx index 6e91bca626..acf5b64c27 100644 --- a/mailpoet/assets/js/src/common/authorize_sender_email_modal.tsx +++ b/mailpoet/assets/js/src/common/authorize_sender_email_modal.tsx @@ -122,6 +122,8 @@ function AuthorizeSenderEmailModal({ return null; } + clearCurrentInterval(setIntervalId.current); + makeApiRequest(senderEmailAddress) .then((res) => { const response = Boolean(res?.data); @@ -130,6 +132,16 @@ function AuthorizeSenderEmailModal({ if (response) { // if pending or already authorized perform the check ahead executeAction(); + + // start polling on success response + setIntervalStopTime.current = moment() + .add(STOP_POLLING_AFTER, 'hours') + .valueOf(); + + setIntervalId.current = setInterval( + executeAction, + 1000 * SET_INTERVAL_SECONDS, + ); } }) .catch(() => { @@ -137,15 +149,7 @@ function AuthorizeSenderEmailModal({ setShowLoader(false); }); - clearCurrentInterval(setIntervalId.current); - setIntervalStopTime.current = moment() - .add(STOP_POLLING_AFTER, 'hours') - .valueOf(); - - const invervalID = setInterval(executeAction, 1000 * SET_INTERVAL_SECONDS); - setIntervalId.current = invervalID; - - return () => clearCurrentInterval(invervalID); + return () => clearCurrentInterval(setIntervalId.current); }, [senderEmailAddress]); // eslint-disable-line react-hooks/exhaustive-deps return (