routes.tsx 1.3 KB

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