import { Activity, BadgeDollarSign, Bug, Coins, Database, GitBranch, Images, LayoutDashboard, ListChecks, LogOut, ReceiptText, ShieldCheck, Star, Table2, TicketCheck, TicketPercent, Users, WalletCards, } from 'lucide-react'; import type { ReactNode } from 'react'; import type { AdminSessionPayload } from '../api/adminApiTypes'; import type { AdminRouteDefinition, AdminRouteId } from './adminRoutes'; interface AdminShellProps { admin: AdminSessionPayload; routeId: AdminRouteId | null; routes: AdminRouteDefinition[]; children: ReactNode; onRouteChange: (routeId: AdminRouteId) => void; onLogout: () => void; } const routeIcons = { dashboard: LayoutDashboard, overview: Activity, tables: Database, debug: Bug, tracking: Table2, 'error-reports': Bug, 'gray-release': GitBranch, redeem: TicketPercent, invite: TicketCheck, 'profile-wallet': WalletCards, tasks: ListChecks, 'recharge-products': BadgeDollarSign, 'recharge-orders': ReceiptText, 'editor-generation-pricing': Coins, 'editor-showcase': Star, 'editor-assets': Images, accounts: Users, 'agc-models': ListChecks, } satisfies Record; export function AdminShell({ admin, routeId, routes, children, onRouteChange, onLogout, }: AdminShellProps) { return (
{admin.displayName || admin.username} {admin.accountRole === 'owner' ? 'owner' : 'member'}
{children}
); }