routes.tsx 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  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. import { GoodsPage } from './pages/Goods';
  15. import { ExpressCompaniesPage } from './pages/ExpressCompanies';
  16. import { SuppliersPage } from './pages/Suppliers';
  17. import { MerchantsPage } from './pages/Merchants'
  18. import { AgentsPage } from './pages/Agents';
  19. import { UserCardsPage } from './pages/UserCards';
  20. import { UserCardBalanceRecordsPage } from './pages/UserCardBalanceRecords';
  21. import { OrdersPage } from './pages/Orders';
  22. import { DeliveryAddressesPage } from './pages/DeliveryAddresses';
  23. export const router = createBrowserRouter([
  24. {
  25. path: '/',
  26. element: <Navigate to="/admin" replace />
  27. },
  28. {
  29. path: '/admin/login',
  30. element: <LoginPage />
  31. },
  32. {
  33. path: '/admin',
  34. element: (
  35. <ProtectedRoute>
  36. <MainLayout />
  37. </ProtectedRoute>
  38. ),
  39. children: [
  40. {
  41. index: true,
  42. element: <Navigate to="/admin/dashboard" />
  43. },
  44. {
  45. path: 'dashboard',
  46. element: <DashboardPage />,
  47. errorElement: <ErrorPage />
  48. },
  49. {
  50. path: 'users',
  51. element: <UsersPage />,
  52. errorElement: <ErrorPage />
  53. },
  54. {
  55. path: 'files',
  56. element: <FilesPage />,
  57. errorElement: <ErrorPage />
  58. },
  59. {
  60. path: 'advertisements',
  61. element: <AdvertisementsPage />,
  62. errorElement: <ErrorPage />
  63. },
  64. {
  65. path: 'advertisement-types',
  66. element: <AdvertisementTypesPage />,
  67. errorElement: <ErrorPage />
  68. },
  69. {
  70. path: 'goods-categories',
  71. element: <GoodsCategories />,
  72. errorElement: <ErrorPage />
  73. },
  74. {
  75. path: 'goods',
  76. element: <GoodsPage />,
  77. errorElement: <ErrorPage />
  78. },
  79. {
  80. path: 'express-companies',
  81. element: <ExpressCompaniesPage />,
  82. errorElement: <ErrorPage />
  83. },
  84. {
  85. path: 'suppliers',
  86. element: <SuppliersPage />,
  87. errorElement: <ErrorPage />
  88. },
  89. {
  90. path: 'merchants',
  91. element: <MerchantsPage />,
  92. errorElement: <ErrorPage />
  93. },
  94. {
  95. path: 'agents',
  96. element: <AgentsPage />,
  97. errorElement: <ErrorPage />
  98. },
  99. {
  100. path: 'user-cards',
  101. element: <UserCardsPage />,
  102. errorElement: <ErrorPage />
  103. },
  104. {
  105. path: 'user-card-balance-records',
  106. element: <UserCardBalanceRecordsPage />,
  107. errorElement: <ErrorPage />
  108. },
  109. {
  110. path: 'delivery-addresses',
  111. element: <DeliveryAddressesPage />,
  112. errorElement: <ErrorPage />
  113. },
  114. {
  115. path: 'orders',
  116. element: <OrdersPage />,
  117. errorElement: <ErrorPage />
  118. },
  119. {
  120. path: '*',
  121. element: <NotFoundPage />,
  122. errorElement: <ErrorPage />
  123. },
  124. ],
  125. },
  126. {
  127. path: '*',
  128. element: <NotFoundPage />,
  129. errorElement: <ErrorPage />
  130. },
  131. ]);