import { Home, Package, Truck, ClipboardList, MoreHorizontal } from "lucide-react" import { Link, useLocation } from "wouter" import { useState } from "react" import { Button } from "@/components/ui/button" import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, SheetTrigger, } from "@/components/ui/sheet" import type { User } from "@shared/schema" interface NavItem { path: string label: string icon: any primary?: boolean } interface MoreMenuItem { path: string label: string icon: any roles?: string[] } const primaryNavItems: NavItem[] = [ { path: "/", label: "Accueil", icon: Home, primary: true }, { path: "/orders", label: "Commandes", icon: Package, primary: true }, { path: "/deliveries", label: "Livraisons", icon: Truck, primary: true }, { path: "/tasks", label: "Tâches", icon: ClipboardList, primary: true }, ] const moreMenuItems: MoreMenuItem[] = [ { path: "/bl-reconciliation", label: "Rapprochement", icon: ClipboardList, roles: ["admin", "directeur", "manager"] }, { path: "/publicities", label: "Publicités", icon: Package, roles: ["admin", "directeur", "manager"] }, { path: "/customer-orders", label: "Commandes Clients", icon: Package, roles: ["admin", "directeur", "manager"] }, { path: "/avoirs", label: "Avoirs", icon: Package, roles: ["admin", "directeur", "manager"] }, { path: "/dlc", label: "DLC", icon: Package, roles: ["admin", "directeur", "manager"] }, { path: "/sav", label: "SAV", icon: ClipboardList, roles: ["admin", "directeur", "manager"] }, { path: "/calendar", label: "Calendrier", icon: ClipboardList }, ] interface PhoneBottomNavProps { user: User location: string } export default function PhoneBottomNav({ user, location }: PhoneBottomNavProps) { const [moreSheetOpen, setMoreSheetOpen] = useState(false) const isActive = (path: string) => { if (path === "/") return location === "/" return location.startsWith(path) } const hasPermission = (roles?: string[]) => { if (!roles || !user) return true return roles.includes(user.role) } const filteredMoreItems = moreMenuItems.filter(item => hasPermission(item.roles)) return (
{/* Navigation principale */} {primaryNavItems.map((item) => { const Icon = item.icon const active = isActive(item.path) return (
{item.label}
) })} {/* Menu "Plus" */}
Plus
Navigation Accédez aux autres sections de l'application
{filteredMoreItems.map((item) => { const Icon = item.icon const active = isActive(item.path) return ( setMoreSheetOpen(false)} >
{item.label}
) })}
) }