'use client'; import { useParams, useRouter } from 'next/navigation'; import React from 'react'; import Button from '@/components/button/PrimaryButton'; import { Skeleton } from '@/components/ui/skeleton'; import { Clock } from 'iconsax-react'; import clsx from 'clsx'; import useToggle from '@/hooks/helpers/useToggle'; import Prompt from '@/components/utils/Prompt'; import { useCancelOrder, useGetOrderDetail } from '../../checkout/hooks/useOrderData'; import ordersTranslations from '@/locales/fa/orders.json'; import { toast } from '@/components/Toast'; import { extractErrorMessage } from '@/lib/func'; import { useQueryClient } from '@tanstack/react-query'; const getDeliveryMethodTitle = (method: string) => { switch (method) { case 'deliveryCourier': return 'ارسال توسط پیک'; case 'deliveryCar': return 'تحویل به خودرو'; case 'pickup': return 'تحویل حضوری'; case 'dineIn': return 'سرو در رستوران'; default: return 'روش ارسال'; } }; // const getStatusPercentage = (status: string) => { // switch (status) { // case 'new': // case 'pendingPayment': // return 0; // case 'paid': // case 'confirmed': // return 20; // case 'preparing': // return 40; // case 'ready': // return 60; // case 'shipped': // case 'delivering': // return 80; // case 'completed': // case 'delivered': // return 100; // default: // return 0; // } // }; const getStatusText = (status: string): string => { const statusKey = status as keyof typeof ordersTranslations.status; return ordersTranslations.status[statusKey] || 'نامشخص'; }; const formatDate = (dateString: string): string => { const date = new Date(dateString); return date.toLocaleDateString('fa-IR', { year: 'numeric', month: 'long', day: 'numeric' }); }; // const formatTime = (dateString: string): string => { // const date = new Date(dateString); // return date.toLocaleTimeString('fa-IR', { // hour: '2-digit', // minute: '2-digit' // }); // }; function OrderTrackingPage() { const { id, name } = useParams(); const router = useRouter(); const queryClient = useQueryClient(); const { state: cancelModal, toggle: toggleCancelModal } = useToggle(); const { data: orderDetail, isLoading } = useGetOrderDetail(id as string); const { mutate: cancelOrder } = useCancelOrder(); const onCancelOrder = (e: React.MouseEvent | null) => { if (!e || !id) return; cancelOrder(id as string, { onSuccess: () => { toggleCancelModal(); queryClient.invalidateQueries({ queryKey: ['order-detail', id] }); toast('سفارش با موفقیت لغو شد', 'success'); }, onError: (error) => { toast(extractErrorMessage(error), 'error'); } }); }; return (