'use client' import Link from 'next/link' import { usePathname } from 'next/navigation' import { useState, type ReactNode } from 'react' import { Menu, LayoutDashboard, Package, ArrowLeftRight, Plus, KeyRound, PackageSearch, ShoppingCart, LogOut, Users } from 'lucide-react' import type { AuthUser } from '@localiztoi/shared' import { Button } from '@/components/ui/button' import { Sheet, SheetContent, SheetTrigger, SheetTitle, } from '@/components/ui/sheet' import { cn } from '@/lib/utils' const isActivePath = (pathname: string, href: string) => { if (href === '/admin') { return pathname === '/admin' } return pathname === href || pathname.startsWith(`${href}/`) } const navLinks = [ { href: '/admin', label: 'Dashboard', icon: LayoutDashboard }, { href: '/admin/amazon-orders', label: 'Amazon', icon: ShoppingCart }, { href: '/admin/orders', label: 'Commandes', icon: Package }, { href: '/admin/sku-mappings', label: 'Correspondances SKU', icon: ArrowLeftRight }, { href: '/admin/axonaut-stock', label: 'Stock Axonaut', icon: PackageSearch }, { href: '/admin/api-keys', label: 'Tokens API', icon: KeyRound }, { href: '/admin/users', label: 'Utilisateurs', icon: Users }, ] const NavContent = ({ pathname, onNavigate, }: { pathname: string onNavigate?: () => void }) => ( ) export const AdminShell = ({ children, user, onLogout }: { children: ReactNode; user: AuthUser; onLogout: () => void }) => { const pathname = usePathname() const [mobileMenuOpen, setMobileMenuOpen] = useState(false) // Pages en mode plein écran (sans header ni sidebar) const isFullscreen = pathname.match(/\/admin\/orders\/[^/]+\/scan(-tracking)?$/) if (isFullscreen) { return (
{children}
) } return (
{/* Desktop sidebar */} {/* Main area */}
{/* Header */}
{/* Mobile hamburger */} Localiztoi Stock
setMobileMenuOpen(false)} />

{user.displayName}

{user.username}

Localiztoi {pathname}
{/* Page content */}
{children}
) }