'use client'; // کشوی (Drawer) سبد خرید: نمایش آیتم‌های انتخابی، تغییر تعداد، جمع کل، و دکمه پرداخت (placeholder). import {Drawer, Button, Empty, InputNumber, message} from 'antd'; import {DeleteOutlined} from '@ant-design/icons'; import {useSelector, useDispatch} from 'react-redux'; import { selectCartItems, selectCartTotal, selectIsDrawerOpen, closeDrawer, removeFromCart, incrementQty, decrementQty, } from '@/store/cartSlice'; import {useLanguage} from '@/app/context/LanguageContext'; import api from "@/lib/axios"; function toLocaleNumber(n, locale) { return n.toLocaleString(locale === 'fa' ? 'fa-IR' : 'en-US'); } export default function CartDrawer() { const dispatch = useDispatch(); const isOpen = useSelector(selectIsDrawerOpen); const items = useSelector(selectCartItems); const total = useSelector(selectCartTotal); const {t, locale, dir} = useLanguage(); const currencySuffix = locale === 'fa' ? ' ریال' : ' Rials'; const handleCheckout = async () => { // ------------------------------------------------------------------- // TODO: Connect to payment gateway API. // try { // const { data } = await axios.post('/api/payment/create', { // items: items.map((i) => ({ id: i.id, qty: i.qty })), // totalAmount: total, // }); // window.location.href = data.paymentRedirectUrl; // } catch (err) { // message.error('...'); // } // api() <===> todo : use this func to fetch ... // ------------------------------------------------------------------- await message.info(t.cart.checkoutToast); }; return ( dispatch(closeDrawer())} open={isOpen} width={400} > {items.length === 0 ? ( {t.cart.empty}} className="mt-16"/> ) : (
{items.map((item) => (
{item.name}

{item.name}

{toLocaleNumber(item.priceNumeric, locale)} {currencySuffix}

{ if (val > item.qty) dispatch(incrementQty(item.id)); else if (val < item.qty) dispatch(decrementQty(item.id)); }} className="w-16" />
))}
{t.cart.total} {toLocaleNumber(total, locale)} {currencySuffix}
)}
); }