"use client"; import { useParams, useRouter } from "next/navigation"; import { Alert, PageHeader, Spinner } from "@/src/Components/UI"; import { useCarMaintenanceList } from "@/src/hooks/UseCarsMaintanance"; import { MAINTENANCE_STATUS_MAP, fmtDate, fmtCost, durationDays, getMaintenanceStatus, } from "@/src/types/carMaintanance"; function DetailRow({ label, value, mono = false }: { label: string; value: string; mono?: boolean }) { return (
{label} {value}
); } export default function CarMaintenanceDetailPage() { const { carId, maintenanceId } = useParams<{ carId: string; maintenanceId: string }>(); const router = useRouter(); // NOTE: GET /cars/:carId/maintenance/:maintenanceId isn't wired up on the // backend yet (returns "Route not found"), so this page resolves the // record from the already-loaded list instead of a dedicated single-record // call. includeDeleted: true so an archived record still resolves to a // real "مؤرشفة" status instead of silently disappearing. const { records, loading, error } = useCarMaintenanceList(carId, { includeDeleted: true }); const record = records.find((r) => r.id === maintenanceId) ?? null; return (
{loading && (
جارٍ التحميل…
)} {error && } {!loading && !error && !record && (

لم يتم العثور على سجل الصيانة.

)} {!loading && !error && record && (() => { const status = MAINTENANCE_STATUS_MAP[getMaintenanceStatus(record)]; return ( <>
{status.label}
{record.car && ( )} ); })()}
); }