import Link from 'next/link' import { formatCurrency, type Locale } from '@rentaldrivego/types' interface Vehicle { id: string make: string model: string year: number category: string dailyRate: number photos: string[] availability?: boolean | null availabilityStatus?: 'AVAILABLE' | 'RESERVED' | 'MAINTENANCE' | 'UNAVAILABLE' nextAvailableAt?: string | null company: { slug: string brand: { displayName: string logoUrl: string | null subdomain: string marketplaceRating: number | null } | null } } interface Dict { rentalCompany: string checkAvailability: string available: string reserved: string maintenance: string unavailableStatus: string from: string viewVehicle: string availableFrom: string unavailableNoDate: string vehicleUnavailable: string listings: string availableVehicles: string } function formatCents(cents: number, language: Locale) { return formatCurrency(cents, 'MAD', language) } function formatAvailabilityDate(value?: string | null) { if (!value) return null return new Date(value).toLocaleDateString('en-GB', { year: 'numeric', month: 'long', day: 'numeric' }) } function getStatusCopy(vehicle: Vehicle, dict: Dict) { if (vehicle.availabilityStatus === 'RESERVED') return dict.reserved if (vehicle.availabilityStatus === 'MAINTENANCE') return dict.maintenance if (vehicle.availabilityStatus === 'UNAVAILABLE') return dict.unavailableStatus if (vehicle.availability === false) return dict.checkAvailability return dict.available } export default function ExploreVehicleGrid({ vehicles, dict, language }: { vehicles: Vehicle[]; dict: Dict; language: Locale }) { return (

{dict.availableVehicles}

{vehicles.length} {dict.listings}

{vehicles.map((vehicle) => (
{vehicle.photos[0] ? ( // eslint-disable-next-line @next/next/no-img-element {`${vehicle.make} ) : null}

{vehicle.company.brand?.displayName ?? dict.rentalCompany}

{vehicle.make} {vehicle.model}

{vehicle.year} ยท {vehicle.category}

{getStatusCopy(vehicle, dict)}
{vehicle.availability === false && (

{vehicle.nextAvailableAt ? `${dict.availableFrom} ${formatAvailabilityDate(vehicle.nextAvailableAt)}` : dict.unavailableNoDate}

)}

{dict.from}

{formatCents(vehicle.dailyRate, language)}

{dict.viewVehicle}
))} {vehicles.length === 0 && (
{dict.vehicleUnavailable}
)}
) }