"use client"; import { useEffect } from "react"; import Link from "next/link"; import { usePathname, useRouter } from "next/navigation"; import { X } from "lucide-react"; import { BrandLogo, BrandMark } from "@/components/brand/logo"; import { NavLinks } from "@/components/layout/nav-links"; import { SidebarUtilities } from "@/components/layout/sidebar-utilities"; import { MOBILE_BOTTOM_NAV, NAV_GROUPS } from "@/lib/nav"; import { cn } from "@/lib/utils"; interface MobileNavDrawerProps { open: boolean; onClose: () => void; badgeCount?: number; userEmail?: string | null; onLogout: () => void; } export function MobileNavDrawer({ open, onClose, badgeCount = 0, userEmail, onLogout, }: MobileNavDrawerProps) { useEffect(() => { if (!open) return; const prev = document.body.style.overflow; document.body.style.overflow = "hidden"; const onKey = (e: KeyboardEvent) => { if (e.key === "Escape") onClose(); }; window.addEventListener("keydown", onKey); return () => { document.body.style.overflow = prev; window.removeEventListener("keydown", onKey); }; }, [open, onClose]); if (!open) return null; return (
{ onClose(); onLogout(); }} />
); } interface MobileBottomNavProps { badgeCount?: number; onOpenMenu: () => void; } export function MobileBottomNav({ badgeCount = 0, onOpenMenu }: MobileBottomNavProps) { const pathname = usePathname(); return ( ); } export function useMobileLogout() { const router = useRouter(); return async function logout() { await fetch("/api/auth/logout", { method: "POST" }); router.replace("/login"); }; }