'use client' import { FC, useState } from 'react' import { ArrowLeft, TaskSquare } from 'iconsax-react' import { useRouter, useParams } from 'next/navigation' import PageLoading from '@/components/PageLoading' import Layout from '@/hoc/Layout' import Menu from '../../components/Menu' import OrderSidebar from './components/OrderSidebar' import OrderMainContent from './components/OrderMainContent' import CancelOrderModal from './components/CancelOrderModal' import { useCancelOrder, useGetOrderDetail } from '../hooks/useOrdersData' import { toast } from '@/components/Toast' import { PRIMARY_COLOR } from '@/config/const' const OrderDetail: FC = () => { const { id } = useParams() const { data: orderDetail } = useGetOrderDetail(id as string) const [showModalCancel, setShowModalCancel] = useState(false) const cancelOrderMutation = useCancelOrder() const router = useRouter() const getStatusText = (status: string) => { const statusMap: Record = { 'processing': 'در حال پردازش', 'shipped': 'ارسال شده', 'delivered': 'تحویل داده شده', 'cancelled': 'لغو شده' } return statusMap[status] || status } const onSubmit = async (cancelData: { reason: string; count: string; description: string }) => { try { // Prepare cancel items from all order items const cancelItems = orderDetail?.results.order.orderItems.flatMap(orderItem => orderItem.shipmentItems.map(shipmentItem => { const availableQuantity = shipmentItem.quantity - shipmentItem.cancelled_quantity - shipmentItem.returned_quantity return { orderItemId: orderItem._id, shipmentItemId: shipmentItem._id, quantity: availableQuantity, comment: cancelData.description, reason: cancelData.reason } }) ) || [] await cancelOrderMutation.mutateAsync({ orderId: Number(id), items: cancelItems }) toast("درخواست لغو سفارش با موفقیت ثبت شد", "success") setShowModalCancel(false) router.push('/profile/orders') } catch { toast("مشکلی در ثبت درخواست لغو سفارش رخ داد", "error") } } return (
جزئیات سفارش
{/*
router.push(`/profile/orders/${id}/return`)}>
فرم درخواست مرجوعی
*/}
{cancelOrderMutation.isPending ? ( ) : orderDetail?.results.order ? (
setShowModalCancel(true)} />
) : (
در حال بارگذاری...
)}
) } export default function OrderDetailWithLayout() { return ( ) }