"use client" import Link from "next/link" import { usePathname, useRouter } from "next/navigation" import { useEffect, useMemo, useState, type ComponentType } from "react" import { BarChart3, BookOpen, Database, FileText, LayoutDashboard, LogOut, Shield, Users } from "lucide-react" type NavItem = { href: string label: string icon: ComponentType<{ className?: string }> } const navItems: NavItem[] = [ { href: "/admin", label: "Dashboard", icon: LayoutDashboard }, { href: "/admin/courses", label: "Courses", icon: BookOpen }, { href: "/admin/users", label: "Users", icon: Users }, { href: "/admin/logs", label: "Logs", icon: FileText }, { href: "/admin/reports", label: "Reports", icon: BarChart3 }, { href: "/admin/database", label: "Database", icon: Database }, { href: "/admin/firewall", label: "Firewall", icon: Shield }, ] export default function AdminLayout({ children }: { children: React.ReactNode }) { const pathname = usePathname() const router = useRouter() const [ready, setReady] = useState(false) const isLoginPage = useMemo(() => pathname === "/admin/login", [pathname]) useEffect(() => { setReady(true) }, []) const handleLogout = () => { localStorage.removeItem("admin_token") router.push("/admin/login") } if (!ready) return null if (isLoginPage) return <>{children}> return (