"use client"; import { useState } from "react"; import { Breadcrumb } from "@/components/ui/Breadcrumb"; import { EmptyState } from "@/components/ui/EmptyState"; import { useAuth } from "@/context/AuthContext"; import { useCart } from "@/context/CartContext"; import { checkout, type Order } from "@/lib/cart"; import { formatPrice } from "@/data/sample"; type PaymentType = "cash" | "transfer"; const inputClass = "w-full rounded-lg border border-border bg-background px-3 py-2 text-sm outline-none transition-colors focus:border-red"; export default function CheckoutPage() { const { user, openLoginModal } = useAuth(); const { cart, businessId, refresh } = useCart(); const [province, setProvince] = useState(""); const [city, setCity] = useState(""); const [address, setAddress] = useState(""); const [postalCode, setPostalCode] = useState(""); const [paymentType, setPaymentType] = useState("cash"); const [transferRefNumber, setTransferRefNumber] = useState(""); const [customerNotes, setCustomerNotes] = useState(""); const [busy, setBusy] = useState(false); const [error, setError] = useState(null); const [order, setOrder] = useState(null); const handleSubmit = async (event: React.FormEvent) => { event.preventDefault(); setBusy(true); setError(null); const res = await checkout(businessId, { shippingAddress: { province, city, address, postalCode: postalCode || undefined }, customerNotes: customerNotes || undefined, payment: paymentType === "transfer" ? { type: "transfer", transferRefNumber: transferRefNumber || undefined } : { type: "cash" }, }); setBusy(false); if (!res.ok) { setError(res.message); return; } setOrder(res.data); refresh(); }; return (

تسویه حساب

{!user ? (
برای تسویه حساب باید وارد حساب کاربری خود شوید.
) : order ? (

سفارش شما با موفقیت ثبت شد ✓

شماره سفارش: {order.orderNumber}

مبلغ کل: {formatPrice(order.total)} تومان

بازگشت به فروشگاه ←
) : !cart || cart.items.length === 0 ? ( ) : (

آدرس ارسال

setProvince(e.target.value)} className={inputClass} /> setCity(e.target.value)} className={inputClass} />