import { Suspense, lazy } from 'react' import { Spin } from 'antd' import { HashRouter, Navigate, Outlet, Route, Routes, useLocation } from 'react-router' import { getAdminRole, hasAdminSession } from '@/utils/admin-auth' import AdminLayout from '@/layouts/AdminLayout' const AdminDashboardPage = lazy(() => import('@/pages/admin/AdminDashboardPage')) const AdminAuditLogsPage = lazy(() => import('@/pages/admin/AdminAuditLogsPage')) const AdminLoginPage = lazy(() => import('@/pages/admin/AdminLoginPage')) const AdminOrderDetailPage = lazy(() => import('@/pages/admin/AdminOrderDetailPage')) const AdminOrdersPage = lazy(() => import('@/pages/admin/AdminOrdersPage')) const AdminPlatformFulfillmentPage = lazy( () => import('@/pages/admin/platform/AdminPlatformFulfillmentPage'), ) const AdminPlatformShopsPage = lazy(() => import('@/pages/admin/platform/AdminPlatformShopsPage')) const AdminTaskDetailPage = lazy(() => import('@/pages/admin/AdminTaskDetailPage')) const AdminTasksPage = lazy(() => import('@/pages/admin/AdminTasksPage')) const AdminUsersPage = lazy(() => import('@/pages/admin/AdminUsersPage')) const ClaimPage = lazy(() => import('@/pages/claim/ClaimPage')) const NotFoundPage = lazy(() => import('@/pages/NotFoundPage')) function RequireAdmin() { const location = useLocation() if (!hasAdminSession()) { return } return } function RequireRole({ roles }: { roles: Array<'admin' | 'operator' | 'support'> }) { if (!roles.includes(getAdminRole())) { return } return } function LoginRoute() { if (hasAdminSession()) { return } return } export default function App() { return ( }> } /> } /> }> }> } /> } /> } /> } /> } /> } /> }> } /> } /> } /> } /> } /> } /> ) } function RouteLoading() { return (
) }