import React, { useMemo, useState } from 'react'; import { englishToPersian, persianToEnglish, formatWithThousands, parseFormattedNumber } from '@/utils/numberUtils'; import { useNavigate } from 'react-router-dom'; import { useOrders, useOrderStats, useUpdateOrderStatus } from '../core/_hooks'; import { OrderFilters, OrderStatus } from '../core/_models'; import { Button } from "@/components/ui/Button"; import { Modal } from "@/components/ui/Modal"; import { Pagination } from "@/components/ui/Pagination"; import { PageContainer, PageTitle } from "@/components/ui/Typography"; import { Table } from "@/components/ui/Table"; import { TableColumn } from "@/types"; import { StatsCard } from '@/components/dashboard/StatsCard'; import DatePicker from 'react-multi-date-picker'; import persian from 'react-date-object/calendars/persian'; import persian_fa from 'react-date-object/locales/persian_fa'; import DateObject from 'react-date-object'; import { ShoppingCart, DollarSign, Clock, Search, Filter, Eye, Edit3, TrendingUp } from 'lucide-react'; const getStatusColor = (status: OrderStatus) => { const colors = { pending: 'bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-200', processing: 'bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200', shipped: 'bg-purple-100 text-purple-800 dark:bg-purple-900 dark:text-purple-200', delivered: 'bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200', cancelled: 'bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-200', refunded: 'bg-gray-100 text-gray-800 dark:bg-gray-900 dark:text-gray-200', }; return colors[status] || colors.pending; }; const getStatusText = (status: OrderStatus) => { const text = { pending: 'در انتظار', processing: 'در حال پردازش', shipped: 'ارسال شده', delivered: 'تحویل شده', cancelled: 'لغو شده', refunded: 'مرجوع شده', }; return text[status] || status; }; const formatCurrency = (amount: number) => { return new Intl.NumberFormat('fa-IR').format(amount) + ' تومان'; }; const formatDate = (dateString: string) => { return new Date(dateString).toLocaleDateString('fa-IR'); }; const ListSkeleton = () => (
خطا در بارگذاری سفارشات
{ordersData?.total || 0} سفارش یافت شد
با تغییر فیلترها جستجو کنید