import type { MaybeComputedRef, UseTimeAgoOptions } from '@vueuse/core' export const useFormattedDateTime = ( value: MaybeComputedRef, options: Intl.DateTimeFormatOptions = { dateStyle: 'long', timeStyle: 'medium' }, ) => { const formatter = Intl.DateTimeFormat(undefined, options) return computed(() => { const v = resolveUnref(value) return v ? formatter.format(new Date(v)) : '' }) } export const timeAgoOptions: UseTimeAgoOptions = { showSecond: true, messages: { justNow: 'just now', past: n => n, future: n => n.match(/\d/) ? `in ${n}` : n, month: (n, past) => n === 1 ? past ? 'last month' : 'next month' : `${n}m`, year: (n, past) => n === 1 ? past ? 'last year' : 'next year' : `${n}y`, day: (n, past) => n === 1 ? past ? 'yesterday' : 'tomorrow' : `${n}d`, week: (n, past) => n === 1 ? past ? 'last week' : 'next week' : `${n} week${n > 1 ? 's' : ''}`, hour: n => `${n}h`, minute: n => `${n}min`, second: n => `${n}s`, }, }