"use client"; import { useState } from "react"; import { Minus, Plus, X, ArrowLeft, ShoppingBag, Check } from "lucide-react"; import { Button } from "@/components/ui/button"; import { useCart } from "@/contexts/CartContext"; import { useAuth } from "@/contexts/AuthContext"; import { useLanguage } from "@/contexts/LanguageContext"; import { createOrder } from "@/lib/api/orders"; import { ApiError } from "@/lib/api"; import Link from "next/link"; import { toast } from "sonner"; export default function Cart() { const { items, updateQuantity, removeItem, clearCart, totalPrice } = useCart(); const { user } = useAuth(); const { t } = useLanguage(); const [loading, setLoading] = useState(false); const [ordered, setOrdered] = useState(false); const handleCheckout = async () => { if (!user) { toast.error(t("cart.login_required")); return; } setLoading(true); try { await createOrder({ items: items.map((i) => ({ product_id: i.product.id, quantity: i.quantity })), }); clearCart(); setOrdered(true); } catch (err) { const msg = err instanceof ApiError ? err.message : t("cart.error"); toast.error(msg); } finally { setLoading(false); } }; if (ordered) { return (
{t("cart.confirmed_desc")}
{t("cart.empty")}
{item.selectedColor} • {item.selectedLength}
{t("cart.login_link")}{" "} {t("cart.login_suffix")}
)}{t("cart.payment_note")}