Files
speckle-server/packages/frontend-2/lib/common/composables/datetime.ts
T
Iain Sproat 920099c39f chore(readable code): use TIME_MS for readable durations
- we recently added TIME_MS helper; this applies it to existing durations
2025-04-18 17:51:43 +01:00

38 lines
973 B
TypeScript

import { TIME_MS } from '@speckle/shared'
import { useIntervalFn } from '@vueuse/core'
import type dayjs from 'dayjs'
export const useReactiveNowDate = (
params?: Partial<{
/**
* How often should the date be updated in milliseconds. Default: 1000ms
*/
updateEvery: number
}>
) => {
const { updateEvery = TIME_MS.second } = params || {}
const date = ref(new Date())
useIntervalFn(() => {
date.value = new Date()
}, updateEvery)
return date
}
export const useFormatDuration = () => {
const durationFormat = (duration: ReturnType<typeof dayjs.duration>) => {
let format = 'ss[s]'
if (duration.minutes() > 0) format = 'mm[m] ' + format
if (duration.hours() > 0) format = 'HH[h] ' + format
if (duration.days() > 0) format = 'D [days] ' + format
if (duration.months() > 0) format = 'M [months] ' + format
if (duration.years() > 0) format = 'Y [years] ' + format
return format
}
return durationFormat
}