'use client'; import { useState } from 'react'; import Link from 'next/link'; import { usePathname } from 'next/navigation'; import { MessageSquare, BookOpen, Heart, Brain, History, Settings, Sparkles, ChevronLeft, ChevronRight, Home, PenTool, Compass, Flame, } from 'lucide-react'; interface NavItem { icon: typeof MessageSquare; label: string; href: string; badge?: string; color?: string; } const mainNav: NavItem[] = [ { icon: MessageSquare, label: 'Chat', href: '/dashboard', color: 'purple' }, { icon: BookOpen, label: 'Bible Study', href: '/dashboard/bible', color: 'blue' }, { icon: PenTool, label: 'Journal', href: '/dashboard/journal', color: 'amber' }, { icon: Heart, label: 'Prayer', href: '/dashboard/prayer', color: 'rose' }, ]; const secondaryNav: NavItem[] = [ { icon: History, label: 'Memory', href: '/dashboard/memory', color: 'violet' }, { icon: Brain, label: 'Insights', href: '/dashboard/insights', color: 'emerald' }, { icon: Compass, label: 'Explore', href: '/dashboard/explore', color: 'cyan' }, ]; const colorClasses: Record = { purple: { bg: 'bg-purple-500/10', border: 'border-purple-500/30', text: 'text-purple-400', hover: 'hover:bg-purple-500/20' }, blue: { bg: 'bg-blue-500/10', border: 'border-blue-500/30', text: 'text-blue-400', hover: 'hover:bg-blue-500/20' }, amber: { bg: 'bg-amber-500/10', border: 'border-amber-500/30', text: 'text-amber-400', hover: 'hover:bg-amber-500/20' }, rose: { bg: 'bg-rose-500/10', border: 'border-rose-500/30', text: 'text-rose-400', hover: 'hover:bg-rose-500/20' }, violet: { bg: 'bg-violet-500/10', border: 'border-violet-500/30', text: 'text-violet-400', hover: 'hover:bg-violet-500/20' }, emerald: { bg: 'bg-emerald-500/10', border: 'border-emerald-500/30', text: 'text-emerald-400', hover: 'hover:bg-emerald-500/20' }, cyan: { bg: 'bg-cyan-500/10', border: 'border-cyan-500/30', text: 'text-cyan-400', hover: 'hover:bg-cyan-500/20' }, }; export default function Sidebar() { const [collapsed, setCollapsed] = useState(false); const pathname = usePathname(); const NavLink = ({ item, isActive }: { item: NavItem; isActive: boolean }) => { const colors = colorClasses[item.color || 'purple']; return ( {!collapsed && ( <> {item.label} {item.badge && ( {item.badge} )} )} ); }; return ( ); }