routes.tsx 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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. import { FilesPage } from './pages/Files';
  11. import { AdvertisementsPage } from './pages/Advertisements';
  12. export const router = createBrowserRouter([
  13. {
  14. path: '/',
  15. element: <Navigate to="/admin" replace />
  16. },
  17. {
  18. path: '/admin/login',
  19. element: <LoginPage />
  20. },
  21. {
  22. path: '/admin',
  23. element: (
  24. <ProtectedRoute>
  25. <MainLayout />
  26. </ProtectedRoute>
  27. ),
  28. children: [
  29. {
  30. index: true,
  31. element: <Navigate to="/admin/dashboard" />
  32. },
  33. {
  34. path: 'dashboard',
  35. element: <DashboardPage />,
  36. errorElement: <ErrorPage />
  37. },
  38. {
  39. path: 'users',
  40. element: <UsersPage />,
  41. errorElement: <ErrorPage />
  42. },
  43. {
  44. path: 'files',
  45. element: <FilesPage />,
  46. errorElement: <ErrorPage />
  47. },
  48. {
  49. path: 'advertisements',
  50. element: <AdvertisementsPage />,
  51. errorElement: <ErrorPage />
  52. },
  53. {
  54. path: '*',
  55. element: <NotFoundPage />,
  56. errorElement: <ErrorPage />
  57. },
  58. ],
  59. },
  60. {
  61. path: '*',
  62. element: <NotFoundPage />,
  63. errorElement: <ErrorPage />
  64. },
  65. ]);