'use client'; import Link from 'next/link'; import { usePathname } from 'next/navigation'; import { useAuthStore } from '@/lib/auth-store'; import { LayoutDashboard, Users, UserPlus, FileText, CreditCard, ArrowLeftRight, Ticket, BarChart3, ScrollText, Settings, } from 'lucide-react'; const navItems = [ { label: 'Dashboard', href: '/dashboard', icon: LayoutDashboard, roles: [] }, { label: 'Clients', href: '/clients', icon: Users, roles: [] }, { label: 'Leads', href: '/leads', icon: UserPlus, roles: ['admin', 'staff'] }, { label: 'Invoices', href: '/invoices', icon: FileText, roles: [] }, { label: 'Payments', href: '/payments', icon: CreditCard, roles: [] }, { label: 'Remittances', href: '/remittances', icon: ArrowLeftRight, roles: ['admin', 'collector'] }, { label: 'Tickets', href: '/tickets', icon: Ticket, roles: [] }, { label: 'Reports', href: '/reports', icon: BarChart3, roles: ['admin', 'staff'] }, { label: 'Audit Log', href: '/audit-log', icon: ScrollText, roles: ['admin'] }, { label: 'Settings', href: '/settings', icon: Settings, roles: ['admin'] }, ]; export default function Sidebar() { const pathname = usePathname(); const user = useAuthStore((s) => s.user); const userRoles: string[] = (user?.roles ?? []).map((r: string) => r.toLowerCase()); const visibleItems = navItems.filter( (item) => item.roles.length === 0 || item.roles.some((r) => userRoles.includes(r)) ); return ( ); }