'use client'; import Link from 'next/link'; import { memo, useMemo } from 'react'; import { usePathname } from 'next/navigation'; import { LayoutDashboard, Users, Calendar, UserCog, FlaskConical, FileText, CreditCard, } from 'lucide-react'; import { useAuth } from '@/lib/hooks/useAuth'; import { canViewTab } from '@/access'; const menu = [ { name: 'Today', path: '/today', icon: LayoutDashboard, read: 'TAB_TODAY_READ' as const }, { name: 'Patients', path: '/patients', icon: Users, read: 'TAB_PATIENTS_READ' as const }, { name: 'Appointments', path: '/appointments', icon: Calendar, read: 'TAB_APPOINTMENTS_READ' as const }, { name: 'Staff Management', path: '/staff', icon: UserCog, read: 'TAB_STAFF_READ' as const }, { name: 'Lab Management', path: '/lab', icon: FlaskConical, read: 'TAB_LAB_READ' as const }, { name: 'Billing', path: '/billing', icon: CreditCard, read: 'TAB_BILLING_READ' as const }, { name: 'Reports', path: '/reports', icon: FileText, read: 'TAB_REPORTS_READ' as const }, ]; function Sidebar() { const pathname = usePathname(); const { currentOrganization } = useAuth(); const visibleMenu = useMemo( () => menu.filter((item) => canViewTab(currentOrganization, item.read)), [currentOrganization], ); return ( ); } export default memo(Sidebar);