import { Activity, Bug, BadgeDollarSign, Coins, LayoutDashboard, LogOut, Megaphone, Eye, WalletCards, ShieldCheck, ListChecks, SlidersHorizontal, Database, Table2, TicketCheck, TicketPercent, } from 'lucide-react'; import type {ReactNode} from 'react'; import type {AdminSessionPayload} from '../api/adminApiTypes'; import type {AdminRouteId} from './adminRoutes'; import {adminRoutes} from './adminRoutes'; interface AdminShellProps { admin: AdminSessionPayload; routeId: AdminRouteId; children: ReactNode; onRouteChange: (routeId: AdminRouteId) => void; onLogout: () => void; } const routeIcons = { dashboard: LayoutDashboard, overview: Activity, tables: Database, debug: Bug, tracking: Table2, redeem: TicketPercent, invite: TicketCheck, 'profile-wallet': WalletCards, tasks: ListChecks, 'recharge-products': BadgeDollarSign, 'editor-generation-pricing': Coins, 'creation-announcement': Megaphone, 'creation-entry': SlidersHorizontal, 'work-visibility': Eye, } satisfies Record; export function AdminShell({ admin, routeId, children, onRouteChange, onLogout, }: AdminShellProps) { return (
{admin.displayName || admin.username} {admin.roles.join(' / ')}
{children}
); }