feat(query): global background-refetch error toast (P1)

Added a QueryCache onError handler to the QueryClient: pages already render an
inline error on initial load, so this only toasts when a *background refetch*
fails while stale data is on screen (which would otherwise be silent). Restores
the load-error feedback dropped during the R5 migration, centrally.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
null 2026-07-03 20:56:31 -05:00
parent 1fe71a7d5e
commit 2793927a5c
1 changed files with 12 additions and 1 deletions

View File

@ -13,10 +13,21 @@ import ErrorBoundary from '@/components/ErrorBoundary';
import PageLoader from '@/components/PageLoader';
// TanStack Query
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { QueryClient, QueryClientProvider, QueryCache } from '@tanstack/react-query';
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
import { toast } from 'sonner';
const queryClient = new QueryClient({
// Global error handling: pages render an inline error on the *initial* load
// (no data yet), so only surface a toast when a *background refetch* fails
// while stale data is still shown otherwise the failure would be silent.
queryCache: new QueryCache({
onError: (error, query) => {
if (query.state.data !== undefined) {
toast.error(error?.message || 'Could not refresh — showing the last data.');
}
},
}),
defaultOptions: {
queries: {
staleTime: 1000 * 60 * 2, // 2 minutes