Ускорено появление просмотренных задач во вкладке Последние: фоновый refetch всех home-запросов и refetchOnWindowFocus для recent
This commit is contained in:
@@ -1052,7 +1052,11 @@ export default function HomePage() {
|
||||
const currentQuery = useQuery<HomeResponse>({
|
||||
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(() => {
|
||||
|
||||
@@ -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) => {
|
||||
|
||||
Reference in New Issue
Block a user