'use client'; import Link from 'next/link'; import { usePathname } from 'next/navigation'; import { cn } from '@/lib/utils'; import { LayoutDashboard, FileText, FileCheck, PenTool, Search, Settings, Shield, Menu, Layers, LucideIcon, } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { useState } from 'react'; import { Can } from '@/components/common/can'; import { useAuthStore } from '@/lib/stores/auth-store'; export type NavItem = { title: string; href: string; icon: LucideIcon; permission?: string | null; adminOnly?: boolean; }; export const mainNavItems: NavItem[] = [ { title: 'Dashboard', href: '/dashboard', icon: LayoutDashboard, permission: null, // Everyone can see }, { title: 'Correspondences', href: '/correspondences', icon: FileText, permission: null, }, { title: 'RFAs', href: '/rfas', icon: FileCheck, permission: null, }, { title: 'Drawings', href: '/drawings', icon: PenTool, permission: null, }, { title: 'Circulations', href: '/circulation', icon: Layers, // Start with generic icon, maybe update import if needed permission: null, }, { title: 'Transmittals', href: '/transmittals', icon: FileText, permission: null, }, { title: 'Search', href: '/search', icon: Search, permission: null, }, { title: 'Admin Panel', href: '/admin', icon: Shield, permission: null, adminOnly: true, }, ]; interface SidebarProps { className?: string; } export function Sidebar({ className }: SidebarProps) { const pathname = usePathname(); const [collapsed, setCollapsed] = useState(false); const user = useAuthStore((state) => state.user); const isAdmin = user?.role === 'ADMIN' || user?.role === 'DC'; return (