routes.tsx 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import { createBrowserRouter, Navigate } from 'react-router';
  2. import { ProtectedRoute } from './components/ProtectedRoute';
  3. import { MainLayout } from './layouts/MainLayout';
  4. import { ErrorPage } from './components/ErrorPage';
  5. import { NotFoundPage } from './components/NotFoundPage';
  6. import { DashboardPage } from './pages/Dashboard';
  7. import { UsersPage } from './pages/Users';
  8. import { LoginPage } from './pages/Login';
  9. import { FilesPage } from './pages/Files';
  10. import { AgoraSTTPage } from './pages/AgoraSTT';
  11. export const router = createBrowserRouter([
  12. {
  13. path: '/',
  14. element: <Navigate to="/admin" replace />
  15. },
  16. {
  17. path: '/admin/login',
  18. element: <LoginPage />
  19. },
  20. {
  21. path: '/admin',
  22. element: (
  23. <ProtectedRoute>
  24. <MainLayout />
  25. </ProtectedRoute>
  26. ),
  27. children: [
  28. {
  29. index: true,
  30. element: <Navigate to="/admin/dashboard" />
  31. },
  32. {
  33. path: 'dashboard',
  34. element: <DashboardPage />,
  35. errorElement: <ErrorPage />
  36. },
  37. {
  38. path: 'users',
  39. element: <UsersPage />,
  40. errorElement: <ErrorPage />
  41. },
  42. {
  43. path: 'files',
  44. element: <FilesPage />,
  45. errorElement: <ErrorPage />
  46. },
  47. {
  48. path: 'agora-stt',
  49. element: <AgoraSTTPage />,
  50. errorElement: <ErrorPage />
  51. },
  52. {
  53. path: '*',
  54. element: <NotFoundPage />,
  55. errorElement: <ErrorPage />
  56. },
  57. ],
  58. },
  59. {
  60. path: '*',
  61. element: <NotFoundPage />,
  62. errorElement: <ErrorPage />
  63. },
  64. ]);