import { lazy, Suspense } from "react"; import type { ReactElement } from "react"; // Lazy load route components for code splitting const Dashboard = lazy(() => import("@/pages/superadmin/Dashboard")); const Tenants = lazy(() => import("@/pages/superadmin/Tenants")); const CreateTenantWizard = lazy( () => import("@/pages/superadmin/CreateTenantWizard"), ); const EditTenant = lazy(() => import("@/pages/superadmin/EditTenant")); const TenantDetails = lazy(() => import("@/pages/superadmin/TenantDetails")); const Modules = lazy(() => import("@/pages/superadmin/Modules")); const AuditLogs = lazy(() => import("@/pages/superadmin/AuditLogs")); const Suppliers = lazy(() => import("@/pages/superadmin/Suppliers")); const NotificationSettings = lazy(() => import("@/pages/tenant/NotificationSettings")); const Notifications = lazy(() => import("@/pages/tenant/Notifications")); const AuditLogResourceTypes = lazy(() => import("@/pages/superadmin/AuditLogResourceTypes")); const NotificationMaster = lazy(() => import("@/pages/superadmin/NotificationMaster")); const NotificationTemplateMaster = lazy(() => import("@/pages/superadmin/NotificationTemplateMaster")); const SmtpConfig = lazy(() => import("@/pages/superadmin/SmtpConfig")); const FailedEmails = lazy(() => import("@/pages/superadmin/FailedEmails")); const AIFallbackHistory = lazy(() => import("@/pages/superadmin/AIFallbackHistory")); const PlatformUsers = lazy(() => import("@/pages/superadmin/Users")); const PlatformRoles = lazy(() => import("@/pages/superadmin/Roles")); const TenantAdminRole = lazy(() => import("@/pages/superadmin/TenantAdminRole")); const StorageBuckets = lazy(() => import("@/pages/superadmin/StorageBuckets")); // Loading fallback component const RouteLoader = (): ReactElement => (
Loading...
); // Wrapper component with Suspense const LazyRoute = ({ component: Component, }: { component: React.ComponentType; }): ReactElement => ( }> ); export interface RouteConfig { path: string; element: ReactElement; } // Super Admin routes (requires super_admin role) export const superAdminRoutes: RouteConfig[] = [ { path: "/dashboard", element: , }, { path: "/platform-users", element: , }, { path: "/platform-roles", element: , }, { path: "/tenant-admin-role", element: , }, { path: "/tenants", element: , }, { path: "/tenants/create-wizard", element: , }, { path: "/tenants/:id/edit", element: , }, { path: "/tenants/:id", element: , }, { path: "/modules", element: , }, { path: "/audit-logs", element: , }, { path: "/suppliers", element: , }, { path: "/settings/notifications", element: , }, { path: "/notifications", element: , }, { path: "/audit-resource-types", element: , }, { path: "/notification-master", element: , }, { path: "/notification-templates", element: , }, { path: "/settings/smtp", element: , }, { path: "/settings/failed-emails", element: , }, { path: "/settings/ai-fallbacks", element: , }, { path: "/settings/storage-buckets", element: , }, ];