"use client"; import React, { useState, useEffect } from "react"; import { usePathname, useRouter } from "next/navigation"; import Link from "next/link"; import { Button } from "@/components/ui/button"; import { LayoutGrid, Calendar, Settings, LogOut, Menu, X, Heart, } from "lucide-react"; import { useAppTheme } from "@/components/ThemeProvider"; import { useAuth } from "@/hooks/useAuth"; import { toast } from "sonner"; const navItems = [ { label: "Dashboard", icon: LayoutGrid, href: "/admin/dashboard" }, { label: "Book Appointment", icon: Calendar, href: "/admin/booking" }, ]; export default function SideNav() { const [open, setOpen] = useState(false); const pathname = usePathname(); const router = useRouter(); const { theme } = useAppTheme(); const isDark = theme === "dark"; const { logout } = useAuth(); const handleLogout = () => { setOpen(false); logout(); toast.success("Logged out successfully"); router.push("/"); }; const getActiveIndex = () => { return navItems.findIndex((item) => pathname?.includes(item.href)) ?? -1; }; // Handle body scroll when mobile menu is open useEffect(() => { if (open) { document.body.classList.add("menu-open"); } else { document.body.classList.remove("menu-open"); } return () => { document.body.classList.remove("menu-open"); }; }, [open]); return ( <> {/* Mobile Top Bar */}
Attune Heart Therapy
{/* Mobile Drawer Overlay */}
setOpen(false)} /> {/* Side Navigation */} ); }