main.tsx
1 import React from 'react' 2 import ReactDOM from 'react-dom/client' 3 import { QueryClient, QueryClientProvider } from '@tanstack/react-query' 4 import { BrowserRouter } from 'react-router-dom' 5 import App from './App' 6 import './index.css' 7 8 // Initialize theme before render to prevent flash 9 import { useThemeStore } from './store/theme' 10 const { theme } = useThemeStore.getState() 11 const resolvedTheme = theme === 'system' 12 ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') 13 : theme 14 if (resolvedTheme === 'dark') { 15 document.documentElement.classList.add('dark') 16 } 17 18 const queryClient = new QueryClient({ 19 defaultOptions: { 20 queries: { 21 staleTime: 1000 * 60, // 1 minute 22 retry: 1, 23 }, 24 }, 25 }) 26 27 ReactDOM.createRoot(document.getElementById('root')!).render( 28 <React.StrictMode> 29 <QueryClientProvider client={queryClient}> 30 <BrowserRouter> 31 <App /> 32 </BrowserRouter> 33 </QueryClientProvider> 34 </React.StrictMode> 35 )