import { Link } from "@remix-run/react"; import { Button } from "~/components/ui/Button"; import { Flex } from "~/components/layout/Flex"; import { useSettings } from "~/contexts/SettingsContext"; import { TRANSMISSION_TYPES, FUEL_TYPES, USE_TYPES, BODY_TYPES } from "~/lib/constants"; import type { VehicleWithOwner, VehicleWithRelations } from "~/types/database"; interface VehicleDetailsViewProps { vehicle: VehicleWithOwner | VehicleWithRelations; onEdit?: () => void; onClose?: () => void; isLoadingVisits?: boolean; } export function VehicleDetailsView({ vehicle, onEdit, onClose, isLoadingVisits }: VehicleDetailsViewProps) { const { formatDate, formatCurrency, formatNumber } = useSettings(); // Helper functions to get display labels const getTransmissionLabel = (value: string) => { return TRANSMISSION_TYPES.find(t => t.value === value)?.label || value; }; const getFuelLabel = (value: string) => { return FUEL_TYPES.find(f => f.value === value)?.label || value; }; const getUseTypeLabel = (value: string) => { return USE_TYPES.find(u => u.value === value)?.label || value; }; const getBodyTypeLabel = (value: string) => { return BODY_TYPES.find(b => b.value === value)?.label || value; }; return (
{vehicle.plateNumber}
{vehicle.manufacturer}
{vehicle.model}
{vehicle.year}
{getBodyTypeLabel(vehicle.bodyType)}
{vehicle.trim}
{getTransmissionLabel(vehicle.transmission)}
{getFuelLabel(vehicle.fuel)}
{getUseTypeLabel(vehicle.useType)}
{vehicle.cylinders}
{vehicle.engineDisplacement} لتر
{vehicle.owner.name}
{vehicle.owner.address}
{vehicle.lastVisitDate ? formatDate(vehicle.lastVisitDate) : لا توجد زيارات }
{formatDate(vehicle.suggestedNextVisitDate)}
{formatDate(vehicle.createdDate)}
{formatDate(vehicle.updateDate)}
لم يتم تسجيل أي زيارات صيانة لهذه المركبة بعد
تسجيل زيارة صيانة جديدةزيارة #{visit.id}
{visit.description}
عرض 3 من أصل {('maintenanceVisits' in vehicle ? vehicle.maintenanceVisits : []).length} زيارة صيانة
📋 عرض جميع الزيارات ({('maintenanceVisits' in vehicle ? vehicle.maintenanceVisits : []).length})