import React, { useState } from 'react'; import { Tag, MapPin, Users, Package, FileText, HelpCircle, LogOut, ChevronDown, ChevronRight, Layers, Type, FileBox, Settings, AlertTriangle, ListTodo, Activity, Apple, FileDigit, Smartphone, Receipt, QrCode, Code, LayoutDashboard } from 'lucide-react'; import { cn } from '../ui/utils'; import logo from "figma:asset/773f0c39e1986271e9144596caac519f934a6ae6.png"; interface SidebarProps { currentView: string; setCurrentView: (view: string) => void; } export function Sidebar({ currentView, setCurrentView }: SidebarProps) { const [labelingOpen, setLabelingOpen] = useState(true); const menuItems = [ { name: 'Dashboard', icon: LayoutDashboard, type: 'item' }, { type: 'header', name: 'MODULES' }, { name: 'Labeling', icon: Tag, type: 'sub', isOpen: labelingOpen, toggle: () => setLabelingOpen(!labelingOpen), children: [ { name: 'Labels', icon: Tag }, { name: 'Label Categories', icon: Layers }, { name: 'Label Types', icon: Type }, { name: 'Label Templates', icon: FileBox }, { name: 'Multiple Options', icon: Settings }, ] }, { name: 'Training', icon: ListTodo, type: 'item' }, { name: 'Alerts', icon: AlertTriangle, type: 'item' }, { name: 'Tasks', icon: ListTodo, type: 'item' }, { name: 'Sensors', icon: Activity, type: 'item' }, { name: 'Food Waste', icon: Apple, type: 'item' }, { name: 'E-Label', icon: FileDigit, type: 'item' }, { type: 'header', name: 'MANAGEMENT' }, { name: 'Location Manager', icon: MapPin, type: 'item' }, { name: 'Account Management', icon: Users, type: 'item' }, { name: 'Menu Manager', icon: Package, type: 'item' }, { name: 'Devices', icon: Smartphone, type: 'item', highlight: true }, { name: 'Invoices', icon: Receipt, type: 'item' }, { name: 'Reports', icon: FileText, type: 'item' }, { name: 'QR Codes', icon: QrCode, type: 'item' }, { name: 'API', icon: Code, type: 'item' }, { name: 'Support', icon: HelpCircle, type: 'action' }, { name: 'Log Out', icon: LogOut, type: 'action', isLogout: true }, ]; return (
MedVantage
{menuItems.map((item, index) => { if (item.type === 'header') { return (
{item.name}
); } if (item.type === 'sub') { return (
{item.isOpen && (
{item.children?.map((child, childIndex) => ( ))}
)}
); } const isAction = item.type === 'action'; const isLogout = 'isLogout' in item && item.isLogout; return ( ); })}
); }