Compare commits
1 Commits
v0.0.24
...
fix/missio
| Author | SHA1 | Date | |
|---|---|---|---|
| a0cc6c3ec7 |
@@ -4,6 +4,7 @@ import { Outfit, Fira_Code } from "next/font/google";
|
|||||||
import { AuthProvider } from "@/lib/auth/auth-context";
|
import { AuthProvider } from "@/lib/auth/auth-context";
|
||||||
import { ErrorBoundary } from "@/components/error-boundary";
|
import { ErrorBoundary } from "@/components/error-boundary";
|
||||||
import { ThemeProvider } from "@/providers/ThemeProvider";
|
import { ThemeProvider } from "@/providers/ThemeProvider";
|
||||||
|
import { ReactQueryProvider } from "@/providers/ReactQueryProvider";
|
||||||
import "./globals.css";
|
import "./globals.css";
|
||||||
|
|
||||||
export const dynamic = "force-dynamic";
|
export const dynamic = "force-dynamic";
|
||||||
@@ -56,9 +57,11 @@ export default function RootLayout({ children }: { children: ReactNode }): React
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<ThemeProvider>
|
<ThemeProvider>
|
||||||
<ErrorBoundary>
|
<ReactQueryProvider>
|
||||||
<AuthProvider>{children}</AuthProvider>
|
<ErrorBoundary>
|
||||||
</ErrorBoundary>
|
<AuthProvider>{children}</AuthProvider>
|
||||||
|
</ErrorBoundary>
|
||||||
|
</ReactQueryProvider>
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
28
apps/web/src/providers/ReactQueryProvider.tsx
Normal file
28
apps/web/src/providers/ReactQueryProvider.tsx
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
||||||
|
import { useState, type ReactNode } from "react";
|
||||||
|
|
||||||
|
interface ReactQueryProviderProps {
|
||||||
|
children: ReactNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function ReactQueryProvider({ children }: ReactQueryProviderProps): React.JSX.Element {
|
||||||
|
// Create a stable QueryClient per component mount (one per app session)
|
||||||
|
const [queryClient] = useState(
|
||||||
|
() =>
|
||||||
|
new QueryClient({
|
||||||
|
defaultOptions: {
|
||||||
|
queries: {
|
||||||
|
// Don't refetch on window focus in a dashboard context
|
||||||
|
refetchOnWindowFocus: false,
|
||||||
|
// Stale time of 30s — short enough for live data, avoids hammering
|
||||||
|
staleTime: 30_000,
|
||||||
|
retry: 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
return <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user