Skip to content

Commit

Permalink
Avoid refetching when window is not visibile (#76)
Browse files Browse the repository at this point in the history
  • Loading branch information
jmrossy authored May 27, 2024
2 parents ae5b099 + ff54d01 commit da33769
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions src/features/messages/queries/useMessageQuery.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,8 @@ export function useMessageSearchQuery(

// Setup interval to re-query
const reExecutor = useCallback(() => {
if (query && isValidInput) {
reexecuteQuery({ requestPolicy: 'network-only' });
}
if (!query || !isValidInput || !isWindowVisible()) return;
reexecuteQuery({ requestPolicy: 'network-only' });
}, [reexecuteQuery, query, isValidInput]);
useInterval(reExecutor, SEARCH_AUTO_REFRESH_DELAY);

Expand Down Expand Up @@ -101,12 +100,13 @@ export function useMessageQuery({ messageId, pause }: { messageId: string; pause
const isMessageFound = messageList.length > 0;
const message = isMessageFound ? messageList[0] : null;
const msgStatus = message?.status;
const isDelivered = isMessageFound && msgStatus === MessageStatus.Delivered;

// Setup interval to re-query
const reExecutor = useCallback(() => {
if (pause || (isMessageFound && msgStatus === MessageStatus.Delivered)) return;
if (pause || isDelivered || !isWindowVisible()) return;
reexecuteQuery({ requestPolicy: 'network-only' });
}, [pause, isMessageFound, msgStatus, reexecuteQuery]);
}, [pause, isDelivered, reexecuteQuery]);
useInterval(reExecutor, MSG_AUTO_REFRESH_DELAY);

return {
Expand All @@ -117,3 +117,7 @@ export function useMessageQuery({ messageId, pause }: { messageId: string; pause
message,
};
}

function isWindowVisible() {
return document.visibilityState === 'visible';
}

0 comments on commit da33769

Please sign in to comment.