index.tsx 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import { createRoot } from 'react-dom/client'
  2. import { RouterProvider } from 'react-router';
  3. import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
  4. import { Toaster } from '@/client/components/ui/sonner';
  5. import dayjs from 'dayjs';
  6. import weekday from 'dayjs/plugin/weekday';
  7. import localeData from 'dayjs/plugin/localeData';
  8. import 'dayjs/locale/zh-cn';
  9. import { AuthProvider } from './hooks/AuthProvider';
  10. import { router } from './routes';
  11. // 配置 dayjs 插件
  12. dayjs.extend(weekday);
  13. dayjs.extend(localeData);
  14. // 设置 dayjs 语言
  15. dayjs.locale('zh-cn');
  16. // 创建QueryClient实例
  17. const queryClient = new QueryClient({
  18. defaultOptions: {
  19. queries: {
  20. retry: 1,
  21. refetchOnWindowFocus: false,
  22. },
  23. },
  24. });
  25. // 应用入口组件
  26. const App = () => {
  27. return (
  28. <QueryClientProvider client={queryClient}>
  29. <AuthProvider>
  30. <RouterProvider router={router} />
  31. <Toaster
  32. position="top-right"
  33. expand={false}
  34. richColors
  35. closeButton
  36. />
  37. </AuthProvider>
  38. </QueryClientProvider>
  39. )
  40. };
  41. const rootElement = document.getElementById('root')
  42. if (rootElement) {
  43. const root = createRoot(rootElement)
  44. root.render(
  45. <App />
  46. )
  47. }