"use client"; import Link from "next/link"; import { usePathname } from "next/navigation"; import { LayoutDashboard, ClipboardList, CheckSquare, HardHat, Building2, Map, ListTodo, Settings, LogOut, Menu, } from "lucide-react"; import { clsx, type ClassValue } from "clsx"; import { twMerge } from "tailwind-merge"; function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); } interface SidebarProps { role: "admin" | "worker"; mobileOpen: boolean; setMobileOpen: (open: boolean) => void; desktopOpen: boolean; onLogout: () => void; } export default function DashboardSidebar({ role, mobileOpen, setMobileOpen, desktopOpen, onLogout, }: SidebarProps) { const pathname = usePathname(); const adminLinks = [ { href: "/admin", label: "Overview", icon: LayoutDashboard }, { href: "/admin/issues", label: "Issues", icon: ClipboardList }, { href: "/admin/review", label: "Review Queue", icon: CheckSquare }, { href: "/admin/workers", label: "Workforce", icon: HardHat }, { href: "/admin/departments", label: "Departments", icon: Building2 }, { href: "/admin/heatmap", label: "Heatmap", icon: Map }, ]; const workerLinks = [{ href: "/worker", label: "My Tasks", icon: ListTodo }]; const links = role === "admin" ? adminLinks : workerLinks; return ( <> {mobileOpen && (
setMobileOpen(false)} /> )} ); }