routes.tsx 2.0 KB

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