routes.tsx 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. export const router = createBrowserRouter([
  10. {
  11. path: '/',
  12. element: <Navigate to="/admin" replace />
  13. },
  14. {
  15. path: '/admin/login',
  16. element: <LoginPage />
  17. },
  18. {
  19. path: '/admin',
  20. element: (
  21. <ProtectedRoute>
  22. <MainLayout />
  23. </ProtectedRoute>
  24. ),
  25. children: [
  26. {
  27. index: true,
  28. element: <Navigate to="/admin/dashboard" />
  29. },
  30. {
  31. path: 'dashboard',
  32. element: <DashboardPage />,
  33. errorElement: <ErrorPage />
  34. },
  35. {
  36. path: 'users',
  37. element: <UsersPage />,
  38. errorElement: <ErrorPage />
  39. },
  40. {
  41. path: '*',
  42. element: <NotFoundPage />,
  43. errorElement: <ErrorPage />
  44. },
  45. ],
  46. },
  47. {
  48. path: '*',
  49. element: <NotFoundPage />,
  50. errorElement: <ErrorPage />
  51. },
  52. ]);