index.tsx 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import { createRoot } from 'react-dom/client'
  2. import { RouterProvider } from 'react-router';
  3. import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
  4. import { App as AntdApp , ConfigProvider} from 'antd'
  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 zhCN from 'antd/locale/zh_CN';
  10. import { AuthProvider } from './hooks/AuthProvider';
  11. import { router } from './routes';
  12. import { Toaster } from '../components/ui/sonner';
  13. // 配置 dayjs 插件
  14. dayjs.extend(weekday);
  15. dayjs.extend(localeData);
  16. // 设置 dayjs 语言
  17. dayjs.locale('zh-cn');
  18. // 创建QueryClient实例
  19. const queryClient = new QueryClient();
  20. // 应用入口组件
  21. const App = () => {
  22. return (
  23. <QueryClientProvider client={queryClient}>
  24. <ConfigProvider locale={zhCN} theme={{
  25. token: {
  26. colorPrimary: '#1890ff',
  27. borderRadius: 4,
  28. colorBgContainer: '#f5f5f5',
  29. },
  30. components: {
  31. Button: {
  32. borderRadius: 4,
  33. },
  34. Card: {
  35. borderRadius: 6,
  36. boxShadow: '0 2px 8px rgba(0, 0, 0, 0.08)',
  37. }
  38. }
  39. }}>
  40. <AntdApp>
  41. <AuthProvider>
  42. <RouterProvider router={router} />
  43. </AuthProvider>
  44. </AntdApp>
  45. </ConfigProvider>
  46. <Toaster />
  47. </QueryClientProvider>
  48. )
  49. };
  50. const rootElement = document.getElementById('root')
  51. if (rootElement) {
  52. const root = createRoot(rootElement)
  53. root.render(
  54. <App />
  55. )
  56. }