Client - display converted speed/elevation in workout chart
This commit is contained in:
@ -25,7 +25,7 @@ import {
|
||||
} from '@/types/statistics'
|
||||
import { incrementDate, getStartDate } from '@/utils/dates'
|
||||
import { sportColors } from '@/utils/sports'
|
||||
import { convertDistance, units } from '@/utils/units'
|
||||
import { convertStatsDistance } from '@/utils/units'
|
||||
|
||||
const dateFormats: Record<string, Record<string, string>> = {
|
||||
week: {
|
||||
@ -103,13 +103,12 @@ export const convertStatsValue = (
|
||||
switch (datasetKey) {
|
||||
case 'total_distance':
|
||||
case 'total_ascent':
|
||||
case 'total_descent': {
|
||||
const unitFrom = datasetKey === 'total_distance' ? 'km' : 'm'
|
||||
const unitTo = useImperialUnits ? units[unitFrom].defaultTarget : unitFrom
|
||||
return useImperialUnits
|
||||
? convertDistance(value, unitFrom, unitTo, 2)
|
||||
: value
|
||||
}
|
||||
case 'total_descent':
|
||||
return convertStatsDistance(
|
||||
datasetKey === 'total_distance' ? 'km' : 'm',
|
||||
value,
|
||||
useImperialUnits
|
||||
)
|
||||
default:
|
||||
case 'nb_workouts':
|
||||
case 'total_duration':
|
||||
|
@ -54,3 +54,12 @@ export const convertDistance = (
|
||||
}
|
||||
return convertedDistance
|
||||
}
|
||||
|
||||
export const convertStatsDistance = (
|
||||
unitFrom: TUnit,
|
||||
value: number,
|
||||
useImperialUnits: boolean
|
||||
): number => {
|
||||
const unitTo = useImperialUnits ? units[unitFrom].defaultTarget : unitFrom
|
||||
return useImperialUnits ? convertDistance(value, unitFrom, unitTo, 2) : value
|
||||
}
|
||||
|
@ -5,10 +5,12 @@ import {
|
||||
TCoordinates,
|
||||
TWorkoutDatasets,
|
||||
} from '@/types/workouts'
|
||||
import { convertStatsDistance } from '@/utils/units'
|
||||
|
||||
export const getDatasets = (
|
||||
chartData: IWorkoutApiChartData[],
|
||||
t: CallableFunction
|
||||
t: CallableFunction,
|
||||
useImperialUnits: boolean
|
||||
): IWorkoutChartData => {
|
||||
const datasets: TWorkoutDatasets = {
|
||||
speed: {
|
||||
@ -36,8 +38,12 @@ export const getDatasets = (
|
||||
chartData.map((data) => {
|
||||
distance_labels.push(data.distance)
|
||||
duration_labels.push(data.duration)
|
||||
datasets.speed.data.push(data.speed)
|
||||
datasets.elevation.data.push(data.elevation)
|
||||
datasets.speed.data.push(
|
||||
convertStatsDistance('km', data.speed, useImperialUnits)
|
||||
)
|
||||
datasets.elevation.data.push(
|
||||
convertStatsDistance('m', data.elevation, useImperialUnits)
|
||||
)
|
||||
coordinates.push({ latitude: data.latitude, longitude: data.longitude })
|
||||
})
|
||||
|
||||
|
Reference in New Issue
Block a user