import { useState, useEffect, useRef } from "react"; import { useAuth } from "@/hooks/use-auth"; import { useLocation } from "wouter"; import { Loader2, ArrowLeft, Building2, RefreshCw, LayoutDashboard, ShoppingCart, Package, DollarSign, FileText, Users, ClipboardList, Settings, Receipt, Truck, CreditCard, BarChart3, ShoppingBag, Utensils, ChevronLeft, ChevronRight, Shield, Database, Wrench, Bell, Tag, Video, FileCheck, Upload, Lock, Send, Store } from "lucide-react"; import { Button } from "@/components/ui/button"; import { cn } from "@/lib/utils"; import { ScrollArea } from "@/components/ui/scroll-area"; interface ModuleItem { id: string; name: string; icon: React.ReactNode; route: string; color?: string; adminOnly?: boolean; } const modules: ModuleItem[] = [ { id: "dashboard", name: "Dashboard", icon: , route: "/home", color: "text-blue-500" }, { id: "pdv", name: "PDV", icon: , route: "/frontbox", color: "text-green-500" }, { id: "vendas", name: "Vendas", icon: , route: "/vendas", color: "text-emerald-500" }, { id: "produtos", name: "Produtos", icon: , route: "/produtos", color: "text-amber-500" }, { id: "estoque", name: "Estoque", icon: , route: "/estoque", color: "text-orange-500" }, { id: "clientes", name: "Clientes", icon: , route: "/clientes", color: "text-purple-500" }, { id: "fornecedores", name: "Fornecedores", icon: , route: "/fornecedores", color: "text-indigo-500" }, { id: "contas-receber", name: "Contas a Receber", icon: , route: "/conta-receber", color: "text-green-600" }, { id: "contas-pagar", name: "Contas a Pagar", icon: , route: "/conta-pagar", color: "text-red-500" }, { id: "nfe", name: "NF-e", icon: , route: "/nfe", color: "text-cyan-500" }, { id: "nfce", name: "NFC-e", icon: , route: "/nfce", color: "text-teal-500" }, { id: "pedidos", name: "Pedidos", icon: , route: "/pedidos-delivery", color: "text-pink-500" }, { id: "cardapio", name: "Cardápio Digital", icon: , route: "/cardapio", color: "text-yellow-500" }, { id: "relatorios", name: "Relatórios", icon: , route: "/relatorios", color: "text-blue-400" }, ]; const adminModules: ModuleItem[] = [ { id: "ibpt", name: "IBPT", icon: , route: "/ibpt", color: "text-blue-600", adminOnly: true }, { id: "ticket", name: "Ticket", icon: , route: "/ticket-super", color: "text-green-600", adminOnly: true }, { id: "config", name: "Configuração", icon: , route: "/configuracao-super", color: "text-slate-500", adminOnly: true }, { id: "notificacoes", name: "Notificações", icon: , route: "/notificacao-super", color: "text-amber-500", adminOnly: true }, { id: "etiquetas", name: "Padrões de Etiqueta", icon: , route: "/padroes-etiqueta", color: "text-purple-500", adminOnly: true }, { id: "videos", name: "Vídeos de Suporte", icon: