"use client";
import React from "react";
import { motion, AnimatePresence } from "motion/react";
import {
X,
Printer,
Download,
Package,
ShoppingBag,
MapPin,
Calendar,
Clock,
CreditCard,
CheckCircle2,
AlertCircle,
Truck
} from "lucide-react";
import { toPersian, cn } from "../lib/utils";
import SafeImage from "./SafeImage";
interface OrderDetailsModalProps {
isOpen: boolean;
onClose: () => void;
order: any;
}
export default function OrderDetailsModal({ isOpen, onClose, order }: OrderDetailsModalProps) {
if (!order) return null;
const handlePrint = () => {
// Basic print logic: open a new window with a simplified version of the invoice
const printWindow = window.open('', '_blank');
if (!printWindow) return;
const itemsHtml = (order.items || []).map((item: any) => `
| ${item.product.name} |
${toPersian(item.quantity)} |
${toPersian(item.product.priceValue.toLocaleString())} تومان |
${toPersian((item.product.priceValue * item.quantity).toLocaleString())} تومان |
`).join('');
printWindow.document.write(`
فاکتور ${order.id}
شماره فاکتور: ${toPersian(order.id)}
کد پیگیری: ${toPersian(order.trackingNumber)}
وضعیت: ${order.status === 'delivered' ? 'تسویه شده' : 'در حال پردازش'}
| محصول |
تعداد |
قیمت واحد |
جمع کل |
${itemsHtml}
جمع کل فاکتور: ${toPersian(order.total.toLocaleString())} تومان
`);
printWindow.document.close();
};
const getStatusIcon = (status: string) => {
switch (status) {
case 'delivered': return ;
case 'shipped': return ;
default: return ;
}
};
const getStatusLabel = (status: string) => {
switch (status) {
case 'delivered': return 'تحویل شده';
case 'shipped': return 'ارسال شده';
default: return 'در حال پردازش';
}
};
const orderDate = new Date(order.date);
return (
{isOpen && (
{/* Header */}
جزئیات سفارش {toPersian(order.id)}
ثبت شده در {toPersian(orderDate.toLocaleDateString("fa-IR"))}
{/* Content Scrollable */}
{/* Summary Stats */}
وضعیت تحویل
{getStatusIcon(order.status)}
{getStatusLabel(order.status)}
کد رهگیری
{toPersian(order.trackingNumber)}
زمان ثبت
{toPersian(orderDate.toLocaleTimeString("fa-IR", { hour: '2-digit', minute: '2-digit' }))}
{/* Items List */}
سبد محصولات خریده شده
{(order.items || []).map((item: any) => (
{item.product.name}
{toPersian(item.quantity)} عدد × {toPersian(item.product.priceValue.toLocaleString())} تومان
{toPersian((item.product.priceValue * item.quantity).toLocaleString())} تومان
))}
{/* Shipping & Payment */}
اطلاعات ارسال
{order.shippingAddress || "آدرس ثبتی کاربر در حساب کاربری"}
جزئیات پرداخت
مبلغ محصولات
{toPersian(((order.total || 0) - (order.charityDonation || 0)).toLocaleString())} تومان
{order.charityDonation > 0 && (
کمک اهدایی (ردپای مهربانی)
{toPersian(order.charityDonation.toLocaleString())} تومان
)}
مبلغ نهایی پرداخت شده
{toPersian(order.total.toLocaleString())} تومان
{/* Footer Actions */}
)}
);
}