/ frontend / src / main.tsx
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  )