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:
parent
1fe71a7d5e
commit
2793927a5c
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue