/** * @ai-summary Vehicle card component with Material Design 3 */ import React from 'react'; import { Card, CardContent, CardActionArea, Box, Typography, IconButton } from '@mui/material'; import EditIcon from '@mui/icons-material/Edit'; import DeleteIcon from '@mui/icons-material/Delete'; import { Vehicle } from '../types/vehicles.types'; import { useUnits } from '../../../core/units/UnitsContext'; import { VehicleImage } from './VehicleImage'; import { getVehicleLabel, getVehicleSubtitle } from '@/core/utils/vehicleDisplay'; interface VehicleCardProps { vehicle: Vehicle; onEdit: (vehicle: Vehicle) => void; onDelete: (id: string) => void; onSelect: (id: string) => void; } export const VehicleCard: React.FC = ({ vehicle, onEdit, onDelete, onSelect, }) => { const { formatDistance } = useUnits(); const displayName = getVehicleLabel(vehicle); const subtitle = getVehicleSubtitle(vehicle); return ( onSelect(vehicle.id)} sx={{ flexGrow: 1 }} > {displayName} {subtitle && ( {subtitle} )} {vehicle.vin && ( VIN: {vehicle.vin} )} {vehicle.licensePlate && ( License: {vehicle.licensePlate} )} Odometer: {formatDistance(vehicle.odometerReading)} { e.stopPropagation(); onEdit(vehicle); }} sx={{ color: 'text.secondary' }} > { e.stopPropagation(); onDelete(vehicle.id); }} sx={{ color: 'error.main' }} > ); };