'use client'; import * as React from 'react'; import Timeline from '@mui/lab/Timeline'; import TimelineConnector from '@mui/lab/TimelineConnector'; import TimelineContent from '@mui/lab/TimelineContent'; import TimelineDot from '@mui/lab/TimelineDot'; import TimelineItem from '@mui/lab/TimelineItem'; import TimelineSeparator from '@mui/lab/TimelineSeparator'; import Avatar from '@mui/material/Avatar'; import Box from '@mui/material/Box'; import Collapse from '@mui/material/Collapse'; import Divider from '@mui/material/Divider'; import LinearProgress from '@mui/material/LinearProgress'; import Stack from '@mui/material/Stack'; import Typography from '@mui/material/Typography'; import { Truck as TruckIcon } from '@phosphor-icons/react/dist/ssr/Truck'; import { dayjs } from '@/lib/dayjs'; import type { Vehicle } from './types'; export interface FleetVehicleProps { onDeselect?: () => void; onSelect?: (vehicleId: string) => void; selected?: boolean; vehicle: Vehicle; } export function FleetVehicle({ onDeselect, onSelect, selected, vehicle }: FleetVehicleProps): React.JSX.Element { const handleToggle = React.useCallback(() => { if (!selected) { onSelect?.(vehicle.id); } else { onDeselect?.(); } }, [onDeselect, onSelect, selected, vehicle]); return ( { if (event.key === 'Enter' || event.key === ' ') { handleToggle(); } }} role="button" spacing={2} sx={{ alignItems: 'center', cursor: 'pointer', dispaly: 'flex', p: 2, textAlign: 'left', width: '100%' }} tabIndex={0} >
{vehicle.id} {vehicle.location}
Temperature (good) {vehicle.temperature}°C {vehicle.arrivedAt ? (
Arrived {dayjs(vehicle.arrivedAt).format('MMM D, YYYY h:mm A')}
) : null} {vehicle.departedAt ? (
Out for delivery {dayjs(vehicle.departedAt).format('MMM D, YYYY h:mm A')}
) : null} {vehicle.startedAt ? (
Tracking number created {dayjs(vehicle.startedAt).format('MMM D, YYYY h:mm A')}
) : null}
); }