diff --git a/client/components/admin/AdminSidebar.tsx b/client/components/admin/AdminSidebar.tsx new file mode 100644 index 00000000..1542e48e --- /dev/null +++ b/client/components/admin/AdminSidebar.tsx @@ -0,0 +1,192 @@ +import { useLocation } from "react-router-dom"; +import { cn } from "@/lib/utils"; +import { + BarChart3, + FileText, + Users, + MessageSquare, + Grid3x3, + Settings, + Award, + Shield, + Rocket, + PenTool, + Command, + Activity, + ClipboardList, + BookOpen, + Home, + ArrowRight, +} from "lucide-react"; + +interface SidebarSection { + label: string; + items: { + id: string; + label: string; + icon: React.ReactNode; + onClick: () => void; + }[]; +} + +interface AdminSidebarProps { + activeTab: string; + onTabChange: (tab: string) => void; +} + +export default function AdminSidebar({ + activeTab, + onTabChange, +}: AdminSidebarProps) { + const location = useLocation(); + + const sections: SidebarSection[] = [ + { + label: "Overview", + items: [ + { + id: "overview", + label: "Dashboard", + icon: , + onClick: () => onTabChange("overview"), + }, + { + id: "system-map", + label: "System Map", + icon: , + onClick: () => onTabChange("system-map"), + }, + { + id: "roadmap", + label: "Roadmap", + icon: , + onClick: () => onTabChange("roadmap"), + }, + ], + }, + { + label: "Staff Management", + items: [ + { + id: "staff", + label: "Staff Operations", + icon: , + onClick: () => onTabChange("staff"), + }, + { + id: "blogs", + label: "Blog Posts", + icon: , + onClick: () => onTabChange("blogs"), + }, + { + id: "community", + label: "Community", + icon: , + onClick: () => onTabChange("community"), + }, + { + id: "mentorship", + label: "Mentorship", + icon: , + onClick: () => onTabChange("mentorship"), + }, + ], + }, + { + label: "Platform", + items: [ + { + id: "arm-metrics", + label: "Arm Metrics", + icon: , + onClick: () => onTabChange("arm-metrics"), + }, + { + id: "discord", + label: "Discord Management", + icon: , + onClick: () => onTabChange("discord"), + }, + { + id: "operations", + label: "Operations", + icon: , + onClick: () => onTabChange("operations"), + }, + ], + }, + { + label: "Resources", + items: [ + { + id: "internal-docs", + label: "Internal Docs", + icon: , + onClick: () => (window.location.href = "/internal-docs"), + }, + ], + }, + ]; + + return ( + + ); +}