"use client"; import { useState } from "react"; import Link from "next/link"; import { usePathname } from "next/navigation"; import { Menu, X, Trophy, Sparkles } from "lucide-react"; interface DashboardSidebarProps { guildId: string; } const menuItems = [ { id: "leaderboard", label: "Leaderboard", icon: Trophy, href: "/leaderboard" }, { id: "leveling", label: "Leveling", icon: Sparkles, href: "/leveling" }, ]; export default function DashboardSidebar({ guildId }: DashboardSidebarProps) { const [sidebarOpen, setSidebarOpen] = useState(false); const pathname = usePathname(); const getActiveTab = () => { if (pathname.includes("/leveling")) return "leveling"; return "leaderboard"; }; const activeTab = getActiveTab(); return ( <> {/* Mobile Menu Button */} {/* Mobile Sidebar Overlay */} {sidebarOpen && (
setSidebarOpen(false)} /> )} {/* Sidebar */}
{menuItems.map((item) => { const Icon = item.icon; const isActive = activeTab === item.id; const href = `/dashboard/${guildId}${item.href}`; return ( setSidebarOpen(false)} className={`w-full text-left px-4 py-3 rounded-lg font-medium transition-all flex items-center gap-3 ${isActive ? "bg-blue-600/20 text-blue-400 border border-blue-600/30" : "text-gray-400 hover:text-white hover:bg-white/5 border border-transparent" }`} > {item.label} ); })}
); }