From 42a7340d72496af90a78ed7285e638127d41573c Mon Sep 17 00:00:00 2001 From: Thomas Rogers Date: Mon, 7 Aug 2023 09:08:08 +0200 Subject: [PATCH] Clear Timeout when navigating away from page. --- .../components/templates/homeFeed/HomeFeedContainer.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx b/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx index 2989751c6..db76086d1 100644 --- a/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx +++ b/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx @@ -181,6 +181,7 @@ export function HomeFeedContainer(): JSX.Element { useEffect(() => { let startIdx = 1; + let timeout : NodeJS.Timeout | undefined; if (savedLink) { const seeIfUpdated = async() => { if (startIdx > 5) { @@ -206,15 +207,18 @@ export function HomeFeedContainer(): JSX.Element { performActionOnItem('update-item', { ...item, isLoading: true }); } console.log(`Trying to get the metadata of item ${item.node.slug}... Retry ${startIdx} of 5`); - setTimeout(seeIfUpdated, TIMEOUT_DELAYS[startIdx++]) + timeout = setTimeout(seeIfUpdated, TIMEOUT_DELAYS[startIdx++]) } // If the item was not found, this suggests that we are not in the right search view. So we can bail early. } setSavedLink(undefined); - setTimeout(seeIfUpdated, TIMEOUT_DELAYS[0]); + timeout = setTimeout(seeIfUpdated, TIMEOUT_DELAYS[0]); } + return () => { + clearTimeout(timeout); + } }, [itemsPages]) const handleFetchMore = useCallback(() => {