"use client"; import Image from "next/image"; import { Minus, Plus, ShoppingBag, Trash2 } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Progress } from "@/components/ui/progress"; import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from "@/components/ui/sheet"; import { formatMoney } from "@/lib/utils"; import { useCartStore } from "@/store/cart-store"; const FREE_SHIPPING_THRESHOLD = 250_000; export function CartDrawer() { const { items, isOpen, closeCart, updateQuantity, removeItem, clearCart } = useCartStore(); const subtotal = items.reduce((sum, item) => sum + (item.product.price ?? 0) * item.quantity, 0); const pricedItems = items.some((item) => item.product.price !== null); const progress = pricedItems ? Math.min(100, (subtotal / FREE_SHIPPING_THRESHOLD) * 100) : 0; const count = items.reduce((sum, item) => sum + item.quantity, 0); const checkout = () => { const lines = items.map((item) => `• ${item.quantity} x ${item.product.name}`).join("\n"); const message = `Hola Ari Shopping 👋\nQuiero consultar disponibilidad para:\n\n${lines}\n\nNombre:\nCiudad:\nForma de entrega:`; void navigator.clipboard?.writeText(message); window.open(process.env.NEXT_PUBLIC_WHATSAPP_URL ?? "https://wa.link/rvcqqc", "_blank", "noopener,noreferrer"); }; return ( { if (!open) closeCart(); }}> Tu carrito {count} producto{count === 1 ? "" : "s"} seleccionado{count === 1 ? "" : "s"}.
{items.length === 0 ? (

Tu carrito está vacío

Agrega un tesoro para comenzar.

) : items.map((item) => (
{item.product.name}

{item.product.name}

{formatMoney(item.product.price, item.product.currency)}

{item.quantity}
))}
{pricedItems ? "Progreso para envío gratis" : "Cotización personalizada"}{pricedItems ? `${Math.round(progress)}%` : "Por confirmar"}
Subtotal{pricedItems ? formatMoney(subtotal) : "Por confirmar"}
); }