"use client"; import { CheckCircle, Clock, Search, Truck, XCircle } from "lucide-react"; import { useState } from "react"; import { AspectRatio } from "@/components/ui/aspect-ratio"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardHeader } from "@/components/ui/card"; import { Input } from "@/components/ui/input"; import { Separator } from "@/components/ui/separator"; import { cn } from "@/lib/utils"; type OrderStatus = "pending" | "shipped" | "delivered" | "cancelled"; interface OrderItem { name: string; variant: string; image: string; price: number; quantity: number; status: OrderStatus; /** ISO 8601 date (YYYY-MM-DD) */ statIRRate: string; } interface Order { id: string; orderNumber: string; /** ISO 8601 date (YYYY-MM-DD) */ orderDate: string; total: number; items: OrderItem[]; } const DEFAULT_ORDERS: Order[] = [ { id: "1", orderNumber: "47582", orderDate: "2025-01-15", total: 487000.0, items: [ { name: "صندلی راحتی مین‌سنتری", variant: "زرد خردلی", image: "/block-media/shadcnblocks/block/ecommerce/furniture/Modern-Leather-Sofa-1.png", price: 289000.0, quantity: 1, status: "delivered", statIRRate: "2025-01-22", }, { name: "کوسن طرح گل", variant: "چاپ گل‌دار تیره", image: "/block-media/shadcnblocks/block/ecommerce/furniture/Minimalist-Loveseat-1.png", price: 490000.0, quantity: 2, status: "delivered", statIRRate: "2025-01-22", }, { name: "گلدان گیاه آپارتمانی", variant: "سبز متوسط", image: "/block-media/shadcnblocks/block/ecommerce/furniture/Minimalist-Wooden-Sideboard-1.png", price: 990000.0, quantity: 1, status: "delivered", statIRRate: "2025-01-18", }, ], }, { id: "2", orderNumber: "46321", orderDate: "2025-01-10", total: 329000.0, items: [ { name: "میز جلو مبلی چوبی", variant: "بلوط طبیعی", image: "/block-media/shadcnblocks/block/ecommerce/furniture/Modern-Wooden-Cabinet-1.png", price: 249000.0, quantity: 1, status: "delivered", statIRRate: "2025-01-13", }, { name: "ست تابلو دیواری بافته", variant: "طرح هندسی", image: "/block-media/shadcnblocks/block/ecommerce/furniture/Modern-Artistic-Lamp-1.png", price: 800000.0, quantity: 1, status: "delivered", statIRRate: "2025-01-13", }, ], }, { id: "3", orderNumber: "45890", orderDate: "2024-12-28", total: 159000.0, items: [ { name: "چراغ رومیزی سرامیکی", variant: "سفید مات", image: "/block-media/shadcnblocks/block/ecommerce/furniture/Modern-Artistic-Lamp-2.png", price: 159000.0, quantity: 1, status: "shipped", statIRRate: "2025-01-05", }, ], }, ]; const formatCurrency = (value: number) => `${value.toLocaleString("fa-IR")} ریال`; const dateFormatter = new Intl.DateTimeFormat("fa-IR", { year: "numeric", month: "long", day: "numeric", }); const formatOrderDate = (isoDate: string) => dateFormatter.format(new Date(isoDate + "T12:00:00")); const statusConfig: Record< OrderStatus, { label: string; className: string; icon: typeof CheckCircle } > = { pending: { label: "در حال پردازش،", className: "text-slate-600", icon: Clock, }, shipped: { label: "ارسال‌شده در", className: "text-blue-600", icon: Truck, }, delivered: { label: "تحویل‌شده در", className: "text-emerald-600", icon: CheckCircle, }, cancelled: { label: "لغوشده در", className: "text-red-600", icon: XCircle, }, }; interface OrderHistory3Props { orders?: Order[]; className?: string; } const OrderHistory3 = ({ orders = DEFAULT_ORDERS, className, }: OrderHistory3Props) => { const [searchQuery, setSearchQuery] = useState(""); const filteredOrders = orders.filter((order) => { if (searchQuery === "") return true; const query = searchQuery.toLowerCase(); return ( order.orderNumber.includes(query) || order.items.some((item) => item.name.toLowerCase().includes(query)) ); }); return (

سفارش‌های من

مشاهده تاریخچه و جزئیات پیگیری سفارش‌ها

{filteredOrders.map((order) => (

شماره سفارش

{order.orderNumber}

تاریخ سفارش

{formatOrderDate(order.orderDate)}

مبلغ کل

{formatCurrency(order.total)}

{order.items.map((item, index) => { const status = statusConfig[item.status]; const StatusIcon = status.icon; return (
{index > 0 && }
{item.name}

{item.name}

{item.variant} {item.quantity > 1 && ( <> {" "} · تعداد:{" "} {item.quantity.toLocaleString("fa-IR")} )}

); })}
))} {filteredOrders.length === 0 && (

سفارشی یافت نشد

سفارشی با عبارت «{searchQuery}» یافت نشد.

)}
); }; export { OrderHistory3 };