"use client"; import React, { type FC } from "react"; import { useClientOrders } from "@/hooks/useClientOrders"; import { fmtDate, fmtAmount } from "@/lib/formatters"; import { statusColor, statusLabel } from "@/lib/order-status"; import { clearSession, type ClientSession } from "@/lib/session"; import type { OrderStatus } from "@/types/client"; import { Spinner } from "../../Components/UI"; // ─── Order status tracker ───────────────────── const STATUS_STEPS: OrderStatus[] = ["CREATED", "IN_TRANSIT", "DELIVERED"]; const STEP_LABELS = ["تم الإنشاء", "قيد التوصيل", "تم التسليم"]; const StepIcon: FC<{ step: number }> = ({ step }) => { if (step === 0) return ( ); if (step === 1) return ( ); return ( ); }; const OrderTracker: FC<{ status: OrderStatus }> = ({ status }) => { const idx = STATUS_STEPS.indexOf(status === "CANCELLED" ? "CREATED" : status); return (
{STATUS_STEPS.map((s, i) => (
{STEP_LABELS[i]}
{i < STATUS_STEPS.length - 1 && ( ); }; // ─── DashboardStep ─────────────────────────── interface DashboardStepProps { session: ClientSession; } const DashboardStep: FC = ({ session }) => { const { orders, loading, error } = useClientOrders(session.id); const activeOrder = orders.find(o => o.status === "CREATED" || o.status === "IN_TRANSIT"); const pastOrders = orders.filter(o => o !== activeOrder); const summary = { total: orders.length, delivered: orders.filter(o => o.status === "DELIVERED").length, pending: orders.filter(o => o.status === "CREATED" || o.status === "IN_TRANSIT").length, }; return (
{/* Header */}

لوحة الطلبات

مرحبًا بعودتك، {session.name}

{/* Loading */} {loading && (

جارٍ تحميل الطلبات…

)} {/* Error */} {error && (

{error}

)} {!loading && !error && ( <> {/* Stats */}
{[ { label: "إجمالي الطلبات", value: summary.total, color: "text-[#111827]" }, { label: "مُسلَّمة", value: summary.delivered, color: "text-[#34A853]" }, { label: "قيد التنفيذ", value: summary.pending, color: "text-[#1A73E8]" }, ].map(s => (

{s.label}

{s.value}

))}
{/* Active order tracker */} {activeOrder ? (

الطلب الحالي

{activeOrder.id}

{statusLabel(activeOrder.status)}
) : (

لا يوجد طلب نشط حاليًا.

)} {/* Past orders table */} {pastOrders.length > 0 && (

سجل الطلبات

{pastOrders.length} طلبات
{["رقم الطلب", "التاريخ", "الوصف", "الحالة", "المبلغ"].map(h => ( ))} {pastOrders.map((order, i) => ( ))}
{h}
{order.id} {fmtDate(order.createdAt)} {order.description} {fmtAmount(order.totalAmount)}
)} )}
); }; export default DashboardStep;