Client - customize chart tooltip (wip)

This commit is contained in:
Sam
2021-09-04 21:36:59 +02:00
parent 4e54d66c55
commit 00a400bc5b
7 changed files with 221 additions and 4 deletions

View File

@ -0,0 +1,20 @@
export const formatDuration = (
totalSeconds: number,
formatWithUnits = false
): string => {
let days = '0'
if (formatWithUnits) {
days = String(Math.floor(totalSeconds / 86400))
totalSeconds %= 86400
}
const hours = String(Math.floor(totalSeconds / 3600)).padStart(2, '0')
totalSeconds %= 3600
const minutes = String(Math.floor(totalSeconds / 60)).padStart(2, '0')
const seconds = String(totalSeconds % 60).padStart(2, '0')
if (formatWithUnits) {
return `${days === '0' ? '' : `${days}d `}${
hours === '00' ? '' : `${hours}h `
}${minutes}m ${seconds}s`
}
return `${hours === '00' ? '' : `${hours}:`}${minutes}:${seconds}`
}

View File

@ -19,7 +19,11 @@ const dateFormats: genericObject = {
year: 'yyyy',
}
const data: TDatasetKeys[] = ['nb_workouts', 'total_duration', 'total_distance']
export const datasetKeys: TDatasetKeys[] = [
'nb_workouts',
'total_duration',
'total_distance',
]
export const getDateKeys = (
params: IStatisticsDateParams,
@ -95,7 +99,7 @@ export const formatStats = (
dayKeys.map((key) => {
const date: string = format(key, dateFormat)
labels.push(date)
data.map((datasetKey) => {
datasetKeys.map((datasetKey) => {
datasets[datasetKey].map((dataset) => {
dataset.data.push(
apiStats !== {} &&

View File

@ -0,0 +1,13 @@
import { TDatasetKeys } from '@/types/statistics'
import { formatDuration } from '@/utils/duration'
export const formatTooltipValue = (
displayedData: TDatasetKeys,
value: number
): string => {
return displayedData === 'total_duration'
? formatDuration(value, true)
: displayedData === 'total_distance'
? value.toFixed(2) + ' km'
: value.toString()
}