From 3b100ad30f01f51c6660340a0a9e3304568c71b6 Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Mon, 3 Apr 2023 09:26:27 +0800 Subject: [PATCH] Disable poll auto-refresh at point of expiry --- src/components/status.jsx | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/src/components/status.jsx b/src/components/status.jsx index 5f1ad25a..f10f7ae3 100644 --- a/src/components/status.jsx +++ b/src/components/status.jsx @@ -1279,24 +1279,26 @@ function Poll({ const expiresAtDate = !!expiresAt && new Date(expiresAt); // Update poll at point of expiry - useEffect(() => { - let timeout; - if (!expired && expiresAtDate) { - const ms = expiresAtDate.getTime() - Date.now() + 1; // +1 to give it a little buffer - if (ms > 0) { - timeout = setTimeout(() => { - setUIState('loading'); - (async () => { - await refresh(); - setUIState('default'); - })(); - }, ms); - } - } - return () => { - clearTimeout(timeout); - }; - }, [expired, expiresAtDate]); + // NOTE: Disable this because setTimeout runs immediately if delay is too large + // https://stackoverflow.com/a/56718027/20838 + // useEffect(() => { + // let timeout; + // if (!expired && expiresAtDate) { + // const ms = expiresAtDate.getTime() - Date.now() + 1; // +1 to give it a little buffer + // if (ms > 0) { + // timeout = setTimeout(() => { + // setUIState('loading'); + // (async () => { + // // await refresh(); + // setUIState('default'); + // })(); + // }, ms); + // } + // } + // return () => { + // clearTimeout(timeout); + // }; + // }, [expired, expiresAtDate]); const pollVotesCount = votersCount || votesCount; let roundPrecision = 0;