From 709d4cbfa3829d5fc28baf41b7be40c047242136 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=BB=D1=8C=D1=8F=D1=81=20=D0=A1=D1=83=D0=BB=D1=82?= =?UTF-8?q?=D0=B0=D0=BD=D0=BE=D0=B2?= Date: Mon, 24 Aug 2026 16:22:56 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D1=81=D0=BA=D0=BE=D1=80=D0=B5=D0=BD?= =?UTF-8?q?=D0=BE=20=D0=BF=D0=BE=D1=8F=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?=20=D0=BF=D1=80=D0=BE=D1=81=D0=BC=D0=BE=D1=82=D1=80=D0=B5=D0=BD?= =?UTF-8?q?=D0=BD=D1=8B=D1=85=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=20=D0=B2?= =?UTF-8?q?=D0=BE=20=D0=B2=D0=BA=D0=BB=D0=B0=D0=B4=D0=BA=D0=B5=20=D0=9F?= =?UTF-8?q?=D0=BE=D1=81=D0=BB=D0=B5=D0=B4=D0=BD=D0=B8=D0=B5:=20=D1=84?= =?UTF-8?q?=D0=BE=D0=BD=D0=BE=D0=B2=D1=8B=D0=B9=20refetch=20=D0=B2=D1=81?= =?UTF-8?q?=D0=B5=D1=85=20home-=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81=D0=BE?= =?UTF-8?q?=D0=B2=20=D0=B8=20refetchOnWindowFocus=20=D0=B4=D0=BB=D1=8F=20r?= =?UTF-8?q?ecent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/src/pages/Home.tsx | 6 +++++- client/src/pages/TaskDetail.tsx | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/client/src/pages/Home.tsx b/client/src/pages/Home.tsx index 48b9bb3..22cc6c6 100644 --- a/client/src/pages/Home.tsx +++ b/client/src/pages/Home.tsx @@ -1052,7 +1052,11 @@ export default function HomePage() { const currentQuery = useQuery({ queryKey: ['home', tab, debouncedSearch, filtersStr, sortStr, offset], queryFn: () => fetchHomeTasks(tab, debouncedSearch, filters, sort, offset), - staleTime: isOnline ? 0 : 30000, + // Recent tab should always be fresh: a viewed task must appear immediately + // when the user returns to Home. Other tabs keep the previous offline-friendly + // behavior. + staleTime: tab === 'recent' ? 0 : (isOnline ? 0 : 30000), + refetchOnWindowFocus: tab === 'recent', }); useEffect(() => { diff --git a/client/src/pages/TaskDetail.tsx b/client/src/pages/TaskDetail.tsx index 275e635..28b0d2b 100644 --- a/client/src/pages/TaskDetail.tsx +++ b/client/src/pages/TaskDetail.tsx @@ -3108,7 +3108,9 @@ const TaskDetail = () => { apiRequest('POST', `/api/tasks/${taskIdNumber}/view`) .then(() => { if (!cancelled) { - queryClient.invalidateQueries({ queryKey: ['home'] }); + // Refetch Home queries in the background, including inactive ones, + // so the Recent tab is already fresh when the user comes back. + queryClient.refetchQueries({ queryKey: ['home'], type: 'all' }); } }) .catch((err) => {