import { useEffect, useRef, useState } from 'react' import { Link } from 'react-router-dom' import { useAuth } from '../context/AuthContext' import { useCartStore, selectCartSummary } from '../stores/cartStore' import { formatCurrency } from '../utils/format' import logoImg from '../assets/logo.png' import { FaRightFromBracket } from 'react-icons/fa6' // Cart dropdown content component function CartDropdownContent() { const items = useCartStore((state) => state.items) const removeItem = useCartStore((state) => state.removeItem) const { totalValue } = useCartStore(selectCartSummary) // Show max 4 items in preview const displayItems = items.slice(0, 4) const hiddenCount = items.length - displayItems.length return (

Carrinho

{displayItems.map((item) => (

{item.name}

{item.quantity}x • R$ {formatCurrency(item.unitPrice)}

))} {hiddenCount > 0 && (
+{hiddenCount} {hiddenCount === 1 ? 'item' : 'itens'}
)}
Total: R$ {formatCurrency(totalValue)}
Ver carrinho completo
) } export function Shell({ children }: { children: React.ReactNode }) { const { user, logout } = useAuth() const [isProfileOpen, setIsProfileOpen] = useState(false) const profileMenuRef = useRef(null) const { totalItems: cartCount } = useCartStore(selectCartSummary) const isOwner = user?.role === 'owner' || user?.role === 'seller' const isAdmin = user?.role === 'admin' const profilePath = isAdmin ? '/dashboard/profile' : '/meu-perfil' const settingsPath = isOwner ? '/company' : '/dashboard/profile' useEffect(() => { const handleClickOutside = (event: MouseEvent) => { if (profileMenuRef.current && !profileMenuRef.current.contains(event.target as Node)) { setIsProfileOpen(false) } } document.addEventListener('mousedown', handleClickOutside) return () => { document.removeEventListener('mousedown', handleClickOutside) } }, []) return (
SaveInMed SaveInMed
{children}
) }