fix: SSR crash — QueryClient in useState, mounted guard for auth hydration

This commit is contained in:
Forge
2026-03-25 15:47:20 +08:00
parent 899188a8b7
commit 6565590eb3
4 changed files with 115 additions and 79 deletions

View File

@@ -1,10 +1,19 @@
'use client';
import { QueryClientProvider } from '@tanstack/react-query';
import { queryClient } from '@/lib/query-client';
import { useState } from 'react';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { Toaster } from '@/components/ui/sonner';
export default function Providers({ children }: { children: React.ReactNode }) {
// Must be created inside component — NOT at module level
// Module-level singleton causes SSR crashes in Next.js App Router
const [queryClient] = useState(
() =>
new QueryClient({
defaultOptions: { queries: { staleTime: 30_000, retry: 1 } },
})
);
return (
<QueryClientProvider client={queryClient}>
{children}