import { NavLink } from "react-router-dom"; import { cn } from "../lib/utils"; import { useSidebar } from "../context/SidebarContext"; import type { LucideIcon } from "lucide-react"; interface SidebarNavItemProps { to: string; label: string; icon: LucideIcon; end?: boolean; badge?: number; badgeTone?: "default" | "danger"; alert?: boolean; } export function SidebarNavItem({ to, label, icon: Icon, end, badge, badgeTone = "default", alert = false, }: SidebarNavItemProps) { const { isMobile, setSidebarOpen } = useSidebar(); return ( { if (isMobile) setSidebarOpen(false); }} className={({ isActive }) => cn( "flex items-center gap-2.5 px-3 py-2 text-[13px] font-medium transition-colors", isActive ? "bg-accent text-foreground" : "text-foreground/80 hover:bg-accent/50 hover:text-foreground" ) } > {alert && ( )} {label} {badge != null && badge > 0 && ( {badge} )} ); }