620 lines
24 KiB
TypeScript
620 lines
24 KiB
TypeScript
import { lazy, Suspense } from 'react'
|
|
import { Route, Routes } from 'react-router-dom'
|
|
|
|
import { PageLoading } from '@/components/PageLoading'
|
|
import { NotFoundPage } from '@/features/NotFoundPage'
|
|
import { StorefrontLayout } from '@/layouts/StorefrontLayout'
|
|
|
|
const ListingListPage = lazy(() =>
|
|
import('@/features/listings/ListingListPage').then(module => ({ default: module.ListingListPage }))
|
|
)
|
|
const ListingDetailPage = lazy(() =>
|
|
import('@/features/listings/ListingDetailPage').then(module => ({
|
|
default: module.ListingDetailPage,
|
|
}))
|
|
)
|
|
const SellerListingsPage = lazy(() =>
|
|
import('@/features/seller/SellerListingsPage').then(module => ({
|
|
default: module.SellerListingsPage,
|
|
}))
|
|
)
|
|
const SellerListingDetailPage = lazy(() =>
|
|
import('@/features/seller/SellerListingDetailPage').then(module => ({
|
|
default: module.SellerListingDetailPage,
|
|
}))
|
|
)
|
|
const SellerListingFormPage = lazy(() =>
|
|
import('@/features/seller/SellerListingFormPage').then(module => ({
|
|
default: module.SellerListingFormPage,
|
|
}))
|
|
)
|
|
const SellerHandoffsPage = lazy(() =>
|
|
import('@/features/seller/SellerHandoffsPage').then(module => ({
|
|
default: module.SellerHandoffsPage,
|
|
}))
|
|
)
|
|
const SellerEarningsPage = lazy(() =>
|
|
import('@/features/seller/SellerEarningsPage').then(module => ({
|
|
default: module.SellerEarningsPage,
|
|
}))
|
|
)
|
|
const SellerPickupsPage = lazy(() =>
|
|
import('@/features/seller/SellerPickupsPage').then(module => ({
|
|
default: module.SellerPickupsPage,
|
|
}))
|
|
)
|
|
const OrderListPage = lazy(() =>
|
|
import('@/features/orders/OrderListPage').then(module => ({ default: module.OrderListPage }))
|
|
)
|
|
const OrderDetailPage = lazy(() =>
|
|
import('@/features/orders/OrderDetailPage').then(module => ({ default: module.OrderDetailPage }))
|
|
)
|
|
const WalletPage = lazy(() =>
|
|
import('@/features/wallet/WalletPage').then(module => ({ default: module.WalletPage }))
|
|
)
|
|
const PaymentAccountsPage = lazy(() =>
|
|
import('@/features/wallet/PaymentAccountsPage').then(module => ({
|
|
default: module.PaymentAccountsPage,
|
|
}))
|
|
)
|
|
const WithdrawalPage = lazy(() =>
|
|
import('@/features/wallet/WithdrawalPage').then(module => ({ default: module.WithdrawalPage }))
|
|
)
|
|
const AnnouncementsPage = lazy(() =>
|
|
import('@/features/announcements/AnnouncementsPage').then(module => ({
|
|
default: module.AnnouncementsPage,
|
|
}))
|
|
)
|
|
const AnnouncementDetailPage = lazy(() =>
|
|
import('@/features/announcements/AnnouncementDetailPage').then(module => ({
|
|
default: module.AnnouncementDetailPage,
|
|
}))
|
|
)
|
|
const NotificationsPage = lazy(() =>
|
|
import('@/features/notifications/NotificationsPage').then(module => ({
|
|
default: module.NotificationsPage,
|
|
}))
|
|
)
|
|
const InvitationsPage = lazy(() =>
|
|
import('@/features/invitations/InvitationsPage').then(module => ({
|
|
default: module.InvitationsPage,
|
|
}))
|
|
)
|
|
const InviteLandingPage = lazy(() =>
|
|
import('@/features/invitations/InviteLandingPage').then(module => ({
|
|
default: module.InviteLandingPage,
|
|
}))
|
|
)
|
|
const CrashListPage = lazy(() =>
|
|
import('@/features/crash/CrashListPage').then(module => ({ default: module.CrashListPage }))
|
|
)
|
|
const CrashDetailPage = lazy(() =>
|
|
import('@/features/crash/CrashDetailPage').then(module => ({ default: module.CrashDetailPage }))
|
|
)
|
|
const CrashOrdersPage = lazy(() =>
|
|
import('@/features/crash/CrashOrdersPage').then(module => ({ default: module.CrashOrdersPage }))
|
|
)
|
|
const MessagesPage = lazy(() =>
|
|
import('@/features/messages/MessagesPage').then(module => ({ default: module.MessagesPage }))
|
|
)
|
|
const ChatPage = lazy(() =>
|
|
import('@/features/messages/ChatPage').then(module => ({ default: module.ChatPage }))
|
|
)
|
|
const LoginPage = lazy(() =>
|
|
import('@/features/auth/LoginPage').then(module => ({ default: module.LoginPage }))
|
|
)
|
|
const MobileLayout = lazy(() =>
|
|
import('@/layouts/MobileLayout').then(module => ({ default: module.MobileLayout }))
|
|
)
|
|
const MobileHomePage = lazy(() =>
|
|
import('@/features/mobile/MobileHomePage').then(module => ({ default: module.MobileHomePage }))
|
|
)
|
|
const MobileListingDetailPage = lazy(() =>
|
|
import('@/features/mobile/MobileListingDetailPage').then(module => ({
|
|
default: module.MobileListingDetailPage,
|
|
}))
|
|
)
|
|
const MobileProfilePage = lazy(() =>
|
|
import('@/features/mobile/MobileProfilePage').then(module => ({
|
|
default: module.MobileProfilePage,
|
|
}))
|
|
)
|
|
const MobileWithdrawalPage = lazy(() =>
|
|
import('@/features/mobile/MobileWithdrawalPage').then(module => ({
|
|
default: module.MobileWithdrawalPage,
|
|
}))
|
|
)
|
|
const MobileAnnouncementsPage = lazy(() =>
|
|
import('@/features/mobile/MobileAnnouncementsPage').then(module => ({
|
|
default: module.MobileAnnouncementsPage,
|
|
}))
|
|
)
|
|
const MobileNotificationsPage = lazy(() =>
|
|
import('@/features/mobile/MobileNotificationsPage').then(module => ({
|
|
default: module.MobileNotificationsPage,
|
|
}))
|
|
)
|
|
const MobileInvitationsPage = lazy(() =>
|
|
import('@/features/mobile/MobileInvitationsPage').then(module => ({
|
|
default: module.MobileInvitationsPage,
|
|
}))
|
|
)
|
|
const MobileRegisterPage = lazy(() =>
|
|
import('@/features/mobile/MobileRegisterPage').then(module => ({
|
|
default: module.MobileRegisterPage,
|
|
}))
|
|
)
|
|
const MobileAddHomeGuidePage = lazy(() =>
|
|
import('@/features/mobile/MobileAddHomeGuidePage').then(module => ({
|
|
default: module.MobileAddHomeGuidePage,
|
|
}))
|
|
)
|
|
const MobileCrashListPage = lazy(() =>
|
|
import('@/features/mobile/MobileCrashListPage').then(module => ({
|
|
default: module.MobileCrashListPage,
|
|
}))
|
|
)
|
|
const MobileCrashDetailPage = lazy(() =>
|
|
import('@/features/mobile/MobileCrashDetailPage').then(module => ({
|
|
default: module.MobileCrashDetailPage,
|
|
}))
|
|
)
|
|
const MobileCrashOrdersPage = lazy(() =>
|
|
import('@/features/mobile/MobileCrashOrdersPage').then(module => ({
|
|
default: module.MobileCrashOrdersPage,
|
|
}))
|
|
)
|
|
const MobileOrdersPage = lazy(() =>
|
|
import('@/features/mobile/MobileOrdersPage').then(module => ({
|
|
default: module.MobileOrdersPage,
|
|
}))
|
|
)
|
|
const MobileOrderDetailPage = lazy(() =>
|
|
import('@/features/mobile/MobileOrderDetailPage').then(module => ({
|
|
default: module.MobileOrderDetailPage,
|
|
}))
|
|
)
|
|
const MobileMessagesPage = lazy(() =>
|
|
import('@/features/mobile/MobileMessagesPage').then(module => ({
|
|
default: module.MobileMessagesPage,
|
|
}))
|
|
)
|
|
const MobileChatPage = lazy(() =>
|
|
import('@/features/mobile/MobileChatPage').then(module => ({
|
|
default: module.MobileChatPage,
|
|
}))
|
|
)
|
|
const MobileRealnamePage = lazy(() =>
|
|
import('@/features/mobile/MobileRealnamePage').then(module => ({
|
|
default: module.MobileRealnamePage,
|
|
}))
|
|
)
|
|
const MobileSellerListingsPage = lazy(() =>
|
|
import('@/features/mobile/MobileSellerListingsPage').then(module => ({
|
|
default: module.MobileSellerListingsPage,
|
|
}))
|
|
)
|
|
const MobileSellerListingDetailPage = lazy(() =>
|
|
import('@/features/mobile/MobileSellerListingDetailPage').then(module => ({
|
|
default: module.MobileSellerListingDetailPage,
|
|
}))
|
|
)
|
|
const MobileSellerFormPage = lazy(() =>
|
|
import('@/features/mobile/MobileSellerFormPage').then(module => ({
|
|
default: module.MobileSellerFormPage,
|
|
}))
|
|
)
|
|
const AdminLoginPage = lazy(() =>
|
|
import('@/features/admin/AdminLoginPage').then(module => ({ default: module.AdminLoginPage }))
|
|
)
|
|
const AdminGuard = lazy(() =>
|
|
import('@/features/admin/AdminGuard').then(module => ({ default: module.AdminGuard }))
|
|
)
|
|
const AdminChangePasswordPage = lazy(() =>
|
|
import('@/features/admin/AdminChangePasswordPage').then(module => ({
|
|
default: module.AdminChangePasswordPage,
|
|
}))
|
|
)
|
|
const AdminDashboardPage = lazy(() =>
|
|
import('@/features/admin/AdminDashboardPage').then(module => ({
|
|
default: module.AdminDashboardPage,
|
|
}))
|
|
)
|
|
const AdminOrdersPage = lazy(() =>
|
|
import('@/features/admin/AdminOrdersPage').then(module => ({
|
|
default: module.AdminOrdersPage,
|
|
}))
|
|
)
|
|
const AdminListingsPage = lazy(() =>
|
|
import('@/features/admin/AdminListingsPage').then(module => ({
|
|
default: module.AdminListingsPage,
|
|
}))
|
|
)
|
|
const AdminUsersPage = lazy(() =>
|
|
import('@/features/admin/AdminUsersPage').then(module => ({
|
|
default: module.AdminUsersPage,
|
|
}))
|
|
)
|
|
const AdminRefundReviewPage = lazy(() =>
|
|
import('@/features/admin/AdminRefundReviewPage').then(module => ({
|
|
default: module.AdminRefundReviewPage,
|
|
}))
|
|
)
|
|
const AdminWithdrawalsPage = lazy(() =>
|
|
import('@/features/admin/AdminWithdrawalsPage').then(module => ({
|
|
default: module.AdminWithdrawalsPage,
|
|
}))
|
|
)
|
|
const AdminDisputesPage = lazy(() =>
|
|
import('@/features/admin/AdminDisputesPage').then(module => ({
|
|
default: module.AdminDisputesPage,
|
|
}))
|
|
)
|
|
const AdminFinancePage = lazy(() =>
|
|
import('@/features/admin/AdminFinancePage').then(module => ({
|
|
default: module.AdminFinancePage,
|
|
}))
|
|
)
|
|
const AdminFinanceDisbursementsPage = lazy(() =>
|
|
import('@/features/admin/AdminFinanceDisbursementsPage').then(module => ({
|
|
default: module.AdminFinanceDisbursementsPage,
|
|
}))
|
|
)
|
|
const AdminOperatingExpensesPage = lazy(() =>
|
|
import('@/features/admin/AdminOperatingExpensesPage').then(module => ({
|
|
default: module.AdminOperatingExpensesPage,
|
|
}))
|
|
)
|
|
const AdminAnnouncementsPage = lazy(() =>
|
|
import('@/features/admin/AdminAnnouncementsPage').then(module => ({
|
|
default: module.AdminAnnouncementsPage,
|
|
}))
|
|
)
|
|
const AdminAuditLogsPage = lazy(() =>
|
|
import('@/features/admin/AdminAuditLogsPage').then(module => ({
|
|
default: module.AdminAuditLogsPage,
|
|
}))
|
|
)
|
|
const AdminSystemConfigsPage = lazy(() =>
|
|
import('@/features/admin/AdminSystemConfigsPage').then(module => ({
|
|
default: module.AdminSystemConfigsPage,
|
|
}))
|
|
)
|
|
const AdminPaymentConfigsPage = lazy(() =>
|
|
import('@/features/admin/AdminPaymentConfigsPage').then(module => ({
|
|
default: module.AdminPaymentConfigsPage,
|
|
}))
|
|
)
|
|
const AdminRolesPage = lazy(() =>
|
|
import('@/features/admin/AdminRolesPage').then(module => ({
|
|
default: module.AdminRolesPage,
|
|
}))
|
|
)
|
|
const AdminSupportGroupsPage = lazy(() =>
|
|
import('@/features/admin/AdminSupportGroupsPage').then(module => ({
|
|
default: module.AdminSupportGroupsPage,
|
|
}))
|
|
)
|
|
const AdminStaffAccountsPage = lazy(() =>
|
|
import('@/features/admin/AdminStaffAccountsPage').then(module => ({
|
|
default: module.AdminStaffAccountsPage,
|
|
}))
|
|
)
|
|
const AdminBackupsPage = lazy(() =>
|
|
import('@/features/admin/AdminBackupsPage').then(module => ({
|
|
default: module.AdminBackupsPage,
|
|
}))
|
|
)
|
|
const AdminCrashCategoriesPage = lazy(() =>
|
|
import('@/features/admin/AdminCrashCategoriesPage').then(module => ({
|
|
default: module.AdminCrashCategoriesPage,
|
|
}))
|
|
)
|
|
const AdminCrashProductsPage = lazy(() =>
|
|
import('@/features/admin/AdminCrashProductsPage').then(module => ({
|
|
default: module.AdminCrashProductsPage,
|
|
}))
|
|
)
|
|
const AdminCrashOrdersPage = lazy(() =>
|
|
import('@/features/admin/AdminCrashOrdersPage').then(module => ({
|
|
default: module.AdminCrashOrdersPage,
|
|
}))
|
|
)
|
|
const AdminCrashConfigPage = lazy(() =>
|
|
import('@/features/admin/AdminCrashConfigPage').then(module => ({
|
|
default: module.AdminCrashConfigPage,
|
|
}))
|
|
)
|
|
const AdminManualEntriesPage = lazy(() =>
|
|
import('@/features/admin/AdminManualEntriesPage').then(module => ({
|
|
default: module.AdminManualEntriesPage,
|
|
}))
|
|
)
|
|
const AdminPaymentsPage = lazy(() =>
|
|
import('@/features/admin/AdminPaymentsPage').then(module => ({
|
|
default: module.AdminPaymentsPage,
|
|
}))
|
|
)
|
|
const AdminPickupsPage = lazy(() =>
|
|
import('@/features/admin/AdminPickupsPage').then(module => ({
|
|
default: module.AdminPickupsPage,
|
|
}))
|
|
)
|
|
const AdminChatsPage = lazy(() =>
|
|
import('@/features/admin/AdminChatsPage').then(module => ({
|
|
default: module.AdminChatsPage,
|
|
}))
|
|
)
|
|
const AdminChatWelcomePage = lazy(() =>
|
|
import('@/features/admin/AdminChatWelcomePage').then(module => ({
|
|
default: module.AdminChatWelcomePage,
|
|
}))
|
|
)
|
|
const AdminQrCodePoolPage = lazy(() =>
|
|
import('@/features/admin/AdminQrCodePoolPage').then(module => ({
|
|
default: module.AdminQrCodePoolPage,
|
|
}))
|
|
)
|
|
const AdminNotificationsPage = lazy(() =>
|
|
import('@/features/admin/AdminNotificationsPage').then(module => ({
|
|
default: module.AdminNotificationsPage,
|
|
}))
|
|
)
|
|
const AdminPushPage = lazy(() =>
|
|
import('@/features/admin/AdminPushPage').then(module => ({
|
|
default: module.AdminPushPage,
|
|
}))
|
|
)
|
|
const AdminInvitationsPage = lazy(() =>
|
|
import('@/features/admin/AdminInvitationsPage').then(module => ({
|
|
default: module.AdminInvitationsPage,
|
|
}))
|
|
)
|
|
const AdminPickupDetailPage = lazy(() =>
|
|
import('@/features/admin/AdminPickupDetailPage').then(module => ({
|
|
default: module.AdminPickupDetailPage,
|
|
}))
|
|
)
|
|
const AdminFinanceDetailsPage = lazy(() =>
|
|
import('@/features/admin/AdminFinanceDetailsPage').then(module => ({
|
|
default: module.AdminFinanceDetailsPage,
|
|
}))
|
|
)
|
|
const AdminWalletLedgerPage = lazy(() =>
|
|
import('@/features/admin/AdminWalletLedgerPage').then(module => ({
|
|
default: module.AdminWalletLedgerPage,
|
|
}))
|
|
)
|
|
const AdminQuickRepliesPage = lazy(() =>
|
|
import('@/features/admin/AdminQuickRepliesPage').then(module => ({
|
|
default: module.AdminQuickRepliesPage,
|
|
}))
|
|
)
|
|
const AdminTrackingLinksPage = lazy(() =>
|
|
import('@/features/admin/AdminTrackingLinksPage').then(module => ({
|
|
default: module.AdminTrackingLinksPage,
|
|
}))
|
|
)
|
|
const AdminDistributionSitesPage = lazy(() =>
|
|
import('@/features/admin/AdminDistributionSitesPage').then(module => ({
|
|
default: module.AdminDistributionSitesPage,
|
|
}))
|
|
)
|
|
const AdminDistributionWalletPage = lazy(() =>
|
|
import('@/features/admin/AdminDistributionWalletPage').then(module => ({
|
|
default: module.AdminDistributionWalletPage,
|
|
}))
|
|
)
|
|
const AdminDistributionDashboardPage = lazy(() =>
|
|
import('@/features/admin/AdminDistributionDashboardPage').then(module => ({
|
|
default: module.AdminDistributionDashboardPage,
|
|
}))
|
|
)
|
|
const AdminDistributionSMSPage = lazy(() =>
|
|
import('@/features/admin/AdminDistributionSMSPage').then(module => ({
|
|
default: module.AdminDistributionSMSPage,
|
|
}))
|
|
)
|
|
const AdminDistributionInvitationPage = lazy(() =>
|
|
import('@/features/admin/AdminDistributionInvitationPage').then(module => ({
|
|
default: module.AdminDistributionInvitationPage,
|
|
}))
|
|
)
|
|
const AdminDistributionQrCodesPage = lazy(() =>
|
|
import('@/features/admin/AdminDistributionQrCodesPage').then(module => ({
|
|
default: module.AdminDistributionQrCodesPage,
|
|
}))
|
|
)
|
|
const AdminDistributionRulesPage = lazy(() =>
|
|
import('@/features/admin/AdminDistributionRulesPage').then(module => ({
|
|
default: module.AdminDistributionRulesPage,
|
|
}))
|
|
)
|
|
const AdminDistributionOrdersPage = lazy(() =>
|
|
import('@/features/admin/AdminDistributionOrdersPage').then(module => ({
|
|
default: module.AdminDistributionOrdersPage,
|
|
}))
|
|
)
|
|
const AdminDistributionSettlementsPage = lazy(() =>
|
|
import('@/features/admin/AdminDistributionSettlementsPage').then(module => ({
|
|
default: module.AdminDistributionSettlementsPage,
|
|
}))
|
|
)
|
|
const AdminDistributionUsersPage = lazy(() =>
|
|
import('@/features/admin/AdminDistributionUsersPage').then(module => ({
|
|
default: module.AdminDistributionUsersPage,
|
|
}))
|
|
)
|
|
const AdminSiteAnnouncementsPage = lazy(() =>
|
|
import('@/features/admin/AdminSiteAnnouncementsPage').then(module => ({
|
|
default: module.AdminSiteAnnouncementsPage,
|
|
}))
|
|
)
|
|
const AdminDistributionListingsPage = lazy(() =>
|
|
import('@/features/admin/AdminDistributionListingsPage').then(module => ({
|
|
default: module.AdminDistributionListingsPage,
|
|
}))
|
|
)
|
|
const AdminDistributionPaymentChannelsPage = lazy(() =>
|
|
import('@/features/admin/AdminDistributionPaymentChannelsPage').then(module => ({
|
|
default: module.AdminDistributionPaymentChannelsPage,
|
|
}))
|
|
)
|
|
const AdminLayout = lazy(() =>
|
|
import('@/layouts/AdminLayout').then(module => ({ default: module.AdminLayout }))
|
|
)
|
|
const AdminSectionPlaceholder = lazy(() =>
|
|
import('@/layouts/AdminLayout').then(module => ({ default: module.AdminSectionPlaceholder }))
|
|
)
|
|
|
|
export function AppRouter() {
|
|
const adminBase = import.meta.env.VITE_ADMIN_BASE_PATH || '/console-jy8k3m'
|
|
|
|
return (
|
|
<Suspense fallback={<PageLoading />}>
|
|
<Routes>
|
|
<Route element={<StorefrontLayout />}>
|
|
<Route index element={<ListingListPage />} />
|
|
<Route path="listings/:id" element={<ListingDetailPage />} />
|
|
<Route path="orders" element={<OrderListPage />} />
|
|
<Route path="orders/:id" element={<OrderDetailPage />} />
|
|
<Route path="wallet" element={<WalletPage />} />
|
|
<Route path="wallet/payment-accounts" element={<PaymentAccountsPage />} />
|
|
<Route path="wallet/withdrawal" element={<WithdrawalPage />} />
|
|
<Route path="announcements" element={<AnnouncementsPage />} />
|
|
<Route path="announcements/:id" element={<AnnouncementDetailPage />} />
|
|
<Route path="notifications" element={<NotificationsPage />} />
|
|
<Route path="invitations" element={<InvitationsPage />} />
|
|
<Route path="crash" element={<CrashListPage />} />
|
|
<Route path="crash/orders" element={<CrashOrdersPage />} />
|
|
<Route path="crash/:id" element={<CrashDetailPage />} />
|
|
<Route path="messages" element={<MessagesPage />} />
|
|
<Route path="messages/:id" element={<ChatPage />} />
|
|
<Route path="seller/listings" element={<SellerListingsPage />} />
|
|
<Route path="seller/listings/new" element={<SellerListingFormPage />} />
|
|
<Route path="seller/listings/:id" element={<SellerListingDetailPage />} />
|
|
<Route path="seller/listings/:id/edit" element={<SellerListingFormPage />} />
|
|
<Route path="seller/handoffs" element={<SellerHandoffsPage />} />
|
|
<Route path="seller/earnings" element={<SellerEarningsPage />} />
|
|
<Route path="seller/pickups" element={<SellerPickupsPage />} />
|
|
</Route>
|
|
|
|
<Route path="/login" element={<LoginPage />} />
|
|
<Route path="/i/:code" element={<InviteLandingPage />} />
|
|
<Route path="/m/login" element={<LoginPage />} />
|
|
|
|
<Route path="/m" element={<MobileLayout />}>
|
|
<Route index element={<MobileHomePage />} />
|
|
<Route path="listings" element={<MobileHomePage />} />
|
|
<Route path="listings/:id" element={<MobileListingDetailPage />} />
|
|
<Route path="orders" element={<MobileOrdersPage />} />
|
|
<Route path="orders/:id" element={<MobileOrderDetailPage />} />
|
|
<Route path="messages" element={<MobileMessagesPage />} />
|
|
<Route path="messages/:id" element={<MobileChatPage />} />
|
|
<Route path="realname" element={<MobileRealnamePage />} />
|
|
<Route path="seller/listings" element={<MobileSellerListingsPage />} />
|
|
<Route path="seller/listings/new" element={<MobileSellerFormPage />} />
|
|
<Route path="seller/listings/:id" element={<MobileSellerListingDetailPage />} />
|
|
<Route path="seller/listings/:id/edit" element={<MobileSellerFormPage />} />
|
|
<Route path="profile" element={<MobileProfilePage />} />
|
|
<Route path="wallet/withdrawal" element={<MobileWithdrawalPage />} />
|
|
<Route path="announcements" element={<MobileAnnouncementsPage />} />
|
|
<Route path="notifications" element={<MobileNotificationsPage />} />
|
|
<Route path="invitations" element={<MobileInvitationsPage />} />
|
|
<Route path="register" element={<MobileRegisterPage />} />
|
|
<Route path="add-home-guide" element={<MobileAddHomeGuidePage />} />
|
|
<Route path="crash" element={<MobileCrashListPage />} />
|
|
<Route path="crash/orders" element={<MobileCrashOrdersPage />} />
|
|
<Route path="crash/:id" element={<MobileCrashDetailPage />} />
|
|
</Route>
|
|
|
|
<Route path={`${adminBase}/login`} element={<AdminLoginPage />} />
|
|
<Route path={adminBase} element={<AdminGuard />}>
|
|
<Route path="change-password" element={<AdminChangePasswordPage />} />
|
|
<Route element={<AdminLayout />}>
|
|
<Route index element={<AdminDashboardPage />} />
|
|
<Route path="orders" element={<AdminOrdersPage />} />
|
|
<Route path="orders/refund-review" element={<AdminRefundReviewPage />} />
|
|
<Route path="listings" element={<AdminListingsPage />} />
|
|
<Route path="listings/review" element={<AdminListingsPage mode="review" />} />
|
|
<Route path="users" element={<AdminUsersPage />} />
|
|
<Route path="withdrawals" element={<AdminWithdrawalsPage />} />
|
|
<Route path="disputes" element={<AdminDisputesPage />} />
|
|
<Route path="finance" element={<AdminFinancePage />} />
|
|
<Route path="finance/disbursements" element={<AdminFinanceDisbursementsPage />} />
|
|
<Route path="finance/operating-expenses" element={<AdminOperatingExpensesPage />} />
|
|
<Route path="announcements" element={<AdminAnnouncementsPage />} />
|
|
<Route path="audit-logs" element={<AdminAuditLogsPage />} />
|
|
<Route path="system-configs" element={<AdminSystemConfigsPage />} />
|
|
<Route path="payment-configs" element={<AdminPaymentConfigsPage />} />
|
|
<Route path="roles" element={<AdminRolesPage />} />
|
|
<Route path="admin-users" element={<AdminStaffAccountsPage />} />
|
|
<Route path="backups" element={<AdminBackupsPage />} />
|
|
<Route path="crash/categories" element={<AdminCrashCategoriesPage />} />
|
|
<Route path="crash/products" element={<AdminCrashProductsPage />} />
|
|
<Route path="crash/orders" element={<AdminCrashOrdersPage />} />
|
|
<Route path="crash/config" element={<AdminCrashConfigPage />} />
|
|
<Route path="manual-entries" element={<AdminManualEntriesPage />} />
|
|
<Route path="payments" element={<AdminPaymentsPage />} />
|
|
<Route path="pickup" element={<AdminPickupsPage />} />
|
|
<Route path="pickup/:id" element={<AdminPickupDetailPage />} />
|
|
<Route path="chats" element={<AdminChatsPage />} />
|
|
<Route path="chat-welcome" element={<AdminChatWelcomePage />} />
|
|
<Route path="qrcode-pool" element={<AdminQrCodePoolPage />} />
|
|
<Route path="notifications" element={<AdminNotificationsPage />} />
|
|
<Route path="push" element={<AdminPushPage />} />
|
|
<Route path="invitations" element={<AdminInvitationsPage />} />
|
|
<Route path="finance/details" element={<AdminFinanceDetailsPage />} />
|
|
<Route path="wallet-ledger" element={<AdminWalletLedgerPage />} />
|
|
<Route path="chat-quick-replies" element={<AdminQuickRepliesPage />} />
|
|
<Route path="tracking-links" element={<AdminTrackingLinksPage />} />
|
|
<Route path="chat-support-groups" element={<AdminSupportGroupsPage />} />
|
|
<Route path="distribution/sites" element={<AdminDistributionSitesPage />} />
|
|
<Route
|
|
path="distribution/dashboard"
|
|
element={<AdminDistributionDashboardPage />}
|
|
/>
|
|
<Route path="distribution/orders" element={<AdminDistributionOrdersPage />} />
|
|
<Route
|
|
path="distribution/settlements"
|
|
element={<AdminDistributionSettlementsPage />}
|
|
/>
|
|
<Route path="distribution/users" element={<AdminDistributionUsersPage />} />
|
|
<Route
|
|
path="distribution/announcements"
|
|
element={<AdminSiteAnnouncementsPage />}
|
|
/>
|
|
<Route
|
|
path="distribution/listings"
|
|
element={<AdminDistributionListingsPage />}
|
|
/>
|
|
<Route
|
|
path="distribution/payment-channels"
|
|
element={<AdminDistributionPaymentChannelsPage />}
|
|
/>
|
|
<Route path="distribution/wallet" element={<AdminDistributionWalletPage />} />
|
|
<Route path="distribution/sms" element={<AdminDistributionSMSPage />} />
|
|
<Route
|
|
path="distribution/invitation"
|
|
element={<AdminDistributionInvitationPage />}
|
|
/>
|
|
<Route path="distribution/qrcodes" element={<AdminDistributionQrCodesPage />} />
|
|
<Route path="distribution/rules" element={<AdminDistributionRulesPage />} />
|
|
<Route
|
|
path="*"
|
|
element={
|
|
<AdminSectionPlaceholder
|
|
title="功能建设中"
|
|
description="这个后台页面还没有进入迁移批次。"
|
|
/>
|
|
}
|
|
/>
|
|
</Route>
|
|
</Route>
|
|
|
|
<Route path="*" element={<NotFoundPage />} />
|
|
</Routes>
|
|
</Suspense>
|
|
)
|
|
}
|