2
0

web_app.tsx 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import React from 'react';
  2. import { createRoot } from 'react-dom/client';
  3. import { RouterProvider } from 'react-router';
  4. import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
  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_sys.tsx';
  10. import { ThemeProvider } from './hooks_sys.tsx';
  11. import { router } from './routes.tsx';
  12. import type { GlobalConfig } from '../share/types.ts';
  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. declare global {
  22. interface Window {
  23. CONFIG?: GlobalConfig;
  24. }
  25. }
  26. // 应用入口组件
  27. const App = () => {
  28. return <RouterProvider router={router} />
  29. };
  30. // 渲染应用
  31. const root = createRoot(document.getElementById('root') as HTMLElement);
  32. root.render(
  33. <QueryClientProvider client={queryClient}>
  34. <ThemeProvider>
  35. <AuthProvider>
  36. <App />
  37. </AuthProvider>
  38. </ThemeProvider>
  39. </QueryClientProvider>
  40. );