mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-23 08:11:13 -05:00
Refactor: Implement cleanup plan
This commit is contained in:
@@ -1,9 +1,8 @@
|
||||
import { useMemo } from 'react';
|
||||
import { useUnitPreferences } from '@/hooks/useUnitPreferences';
|
||||
import {
|
||||
convertSpeed,
|
||||
convertDistance,
|
||||
convertHeight,
|
||||
convertValueFromMetric,
|
||||
getDisplayUnit,
|
||||
getSpeedUnit,
|
||||
getDistanceUnit,
|
||||
getHeightUnit,
|
||||
@@ -29,47 +28,36 @@ export function MeasurementDisplay({
|
||||
const { displayValue, unit, alternateDisplay, tooltipText } = useMemo(() => {
|
||||
const system = unitPreferences.measurement_system;
|
||||
|
||||
let displayValue: number;
|
||||
let unit: string;
|
||||
let alternateValue: number;
|
||||
let alternateUnit: string;
|
||||
let metricUnit: string;
|
||||
let displayUnit: string;
|
||||
let alternateSystem: MeasurementSystem;
|
||||
|
||||
switch (type) {
|
||||
case 'speed':
|
||||
displayValue = convertSpeed(value, system);
|
||||
unit = getSpeedUnit(system);
|
||||
alternateValue = convertSpeed(value, system === 'metric' ? 'imperial' : 'metric');
|
||||
alternateUnit = getSpeedUnit(system === 'metric' ? 'imperial' : 'metric');
|
||||
metricUnit = 'km/h';
|
||||
break;
|
||||
case 'distance':
|
||||
displayValue = convertDistance(value, system);
|
||||
unit = getDistanceUnit(system);
|
||||
alternateValue = convertDistance(value, system === 'metric' ? 'imperial' : 'metric');
|
||||
alternateUnit = getDistanceUnit(system === 'metric' ? 'imperial' : 'metric');
|
||||
case 'short_distance':
|
||||
metricUnit = 'm';
|
||||
break;
|
||||
case 'height':
|
||||
displayValue = convertHeight(value, system);
|
||||
unit = getHeightUnit(system);
|
||||
alternateValue = convertHeight(value, system === 'metric' ? 'imperial' : 'metric');
|
||||
alternateUnit = getHeightUnit(system === 'metric' ? 'imperial' : 'metric');
|
||||
break;
|
||||
case 'short_distance':
|
||||
displayValue = convertDistance(value, system);
|
||||
unit = getShortDistanceUnit(system);
|
||||
alternateValue = convertDistance(value, system === 'metric' ? 'imperial' : 'metric');
|
||||
alternateUnit = getShortDistanceUnit(system === 'metric' ? 'imperial' : 'metric');
|
||||
metricUnit = 'cm';
|
||||
break;
|
||||
default:
|
||||
displayValue = value;
|
||||
unit = '';
|
||||
alternateValue = value;
|
||||
alternateUnit = '';
|
||||
return { displayValue: value, unit: '', alternateDisplay: '', tooltipText: undefined };
|
||||
}
|
||||
|
||||
alternateSystem = system === 'metric' ? 'imperial' : 'metric';
|
||||
displayUnit = getDisplayUnit(metricUnit, system);
|
||||
const alternateUnit = getDisplayUnit(metricUnit, alternateSystem);
|
||||
|
||||
const displayValue = convertValueFromMetric(value, displayUnit, metricUnit);
|
||||
const alternateValue = convertValueFromMetric(value, alternateUnit, metricUnit);
|
||||
|
||||
const alternateDisplay = showBothUnits ? ` (${alternateValue} ${alternateUnit})` : '';
|
||||
const tooltipText = showBothUnits ? undefined : `${alternateValue} ${alternateUnit}`;
|
||||
|
||||
return { displayValue, unit, alternateDisplay, tooltipText };
|
||||
return { displayValue, unit: displayUnit, alternateDisplay, tooltipText };
|
||||
}, [value, type, unitPreferences.measurement_system, showBothUnits]);
|
||||
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user