11import { memo , useMemo } from 'react' ;
2+ import { resolveSpeedUnit , speedFromKph } from '@irdashies/utils/units' ;
3+ import type { SpeedUnit } from '@irdashies/utils/units' ;
24import {
35 useDrivingState ,
46 useSessionVisibility ,
@@ -87,7 +89,7 @@ interface BattleRowProps {
8789 stintLaps ?: number ;
8890 lastTimeFormat ?: import ( '@irdashies/types' ) . TimeFormat ;
8991 speedKph ?: number ;
90- isMetricSpeed ?: boolean ;
92+ speedUnit ?: SpeedUnit ;
9193 rowIndex : number ;
9294}
9395
@@ -107,7 +109,7 @@ const BattleRow = memo(
107109 stintLaps,
108110 lastTimeFormat = 'mixed' ,
109111 speedKph,
110- isMetricSpeed = true ,
112+ speedUnit = 'km/h' ,
111113 rowIndex,
112114 } : BattleRowProps ) => {
113115 const onTrack = entry ?. onTrack ?? true ;
@@ -216,7 +218,7 @@ const BattleRow = memo(
216218 } else if ( key === 'speed' && settings ?. speed ?. enabled ) {
217219 const displaySpeed =
218220 speedKph != null && speedKph > 0
219- ? Math . round ( isMetricSpeed ? speedKph : speedKph / 1.60934 )
221+ ? Math . round ( speedFromKph ( speedKph , speedUnit ) )
220222 : null ;
221223 cols . push (
222224 < td
@@ -385,10 +387,11 @@ export const Battle = () => {
385387
386388 // Speed: derived from CarIdxLapDistPct movement, in km/h.
387389 const carSpeeds = useCarIdxSpeed ( ) ;
388- const displayUnits = useTelemetryValue ( 'DisplayUnits' ) ; // 0 = imperial, 1 = metric
389- const speedUnit = settings ?. speed ?. unit ?? 'auto' ;
390- const isMetricSpeed =
391- speedUnit === 'auto' ? displayUnits === 1 : speedUnit === 'km/h' ;
390+ const displayUnits = useTelemetryValue ( 'DisplayUnits' ) ;
391+ const resolvedSpeedUnit = resolveSpeedUnit (
392+ settings ?. speed ?. unit ,
393+ displayUnits
394+ ) ;
392395
393396 const stintLaps = ( carIdx : number ) => {
394397 const currentLap = carLaps ?. [ carIdx ] ?? 0 ;
@@ -449,7 +452,7 @@ export const Battle = () => {
449452 speedKph = {
450453 aheadEntry != null ? carSpeeds [ aheadEntry . carIdx ] : undefined
451454 }
452- isMetricSpeed = { isMetricSpeed }
455+ speedUnit = { resolvedSpeedUnit }
453456 rowIndex = { 0 }
454457 />
455458 < BattleRow
@@ -468,7 +471,7 @@ export const Battle = () => {
468471 speedKph = {
469472 playerEntry != null ? carSpeeds [ playerEntry . carIdx ] : undefined
470473 }
471- isMetricSpeed = { isMetricSpeed }
474+ speedUnit = { resolvedSpeedUnit }
472475 rowIndex = { 1 }
473476 />
474477 < BattleRow
@@ -496,7 +499,7 @@ export const Battle = () => {
496499 speedKph = {
497500 behindEntry != null ? carSpeeds [ behindEntry . carIdx ] : undefined
498501 }
499- isMetricSpeed = { isMetricSpeed }
502+ speedUnit = { resolvedSpeedUnit }
500503 rowIndex = { 2 }
501504 />
502505 </ tbody >
0 commit comments