import { teamColor } from '../../utils' import type { LiveStreamData } from '../../types' import { driverCode, positionDelta, positionDeltaClass, sortLiveTimingRows, tyreClass, tyreLabel, } from '../../lib/live' interface Props { snapshot: LiveStreamData } function posClass(pos: number): string { if (pos === 1) return 'pos-p1' if (pos === 2) return 'pos-p2' if (pos === 3) return 'pos-p3' return 'pos-n' } export function TimingTower({ snapshot }: Props) { const rows = sortLiveTimingRows(snapshot) if (rows.length === 0) { return (
Live timing is connected, but no driver timing rows have arrived yet.
) } return (
{rows.map((row) => { const driver = row.Driver const delta = positionDelta(driver) const deltaClass = positionDeltaClass(driver) return ( ) })}
Pos Δ Driver Tyre Last Lap Gap Best Laps
{row.Position} {delta}
{driverCode(row)} {row.RacingNumber} {driver.InPit && PIT} {driver.PitOut && !driver.InPit && OUT} {driver.Retired && RET} {driver.KnockedOut && KO} {driver.Cutoff && !driver.KnockedOut && CUT} {driver.OnFlyingLap && FL}
{tyreLabel(row.Tyre)} {driver.LastLapTime || '-'} {driver.GapToLeader || driver.Interval || '-'} {driver.BestLapTime || '-'} {driver.NumberOfLaps || '-'}
) }