2025-04-18 05:59:12 +00:00
|
|
|
import dayjs from 'dayjs'
|
2025-07-24 02:42:33 +00:00
|
|
|
import relativeTime from 'dayjs/plugin/relativeTime'
|
2025-04-18 05:59:12 +00:00
|
|
|
import { useCallback } from 'react'
|
2025-12-30 06:38:23 +00:00
|
|
|
import { useLocale } from '@/context/i18n'
|
2025-12-24 08:31:16 +00:00
|
|
|
import { localeMap } from '@/i18n-config/language'
|
2025-09-28 05:37:42 +00:00
|
|
|
import 'dayjs/locale/de'
|
|
|
|
|
import 'dayjs/locale/es'
|
|
|
|
|
import 'dayjs/locale/fa'
|
|
|
|
|
import 'dayjs/locale/fr'
|
|
|
|
|
import 'dayjs/locale/hi'
|
|
|
|
|
import 'dayjs/locale/id'
|
|
|
|
|
import 'dayjs/locale/it'
|
|
|
|
|
import 'dayjs/locale/ja'
|
|
|
|
|
import 'dayjs/locale/ko'
|
|
|
|
|
import 'dayjs/locale/pl'
|
|
|
|
|
import 'dayjs/locale/pt-br'
|
|
|
|
|
import 'dayjs/locale/ro'
|
|
|
|
|
import 'dayjs/locale/ru'
|
|
|
|
|
import 'dayjs/locale/sl'
|
|
|
|
|
import 'dayjs/locale/th'
|
|
|
|
|
import 'dayjs/locale/tr'
|
|
|
|
|
import 'dayjs/locale/uk'
|
|
|
|
|
import 'dayjs/locale/vi'
|
2025-07-24 02:42:33 +00:00
|
|
|
import 'dayjs/locale/zh-cn'
|
2025-09-28 05:37:42 +00:00
|
|
|
import 'dayjs/locale/zh-tw'
|
2025-07-24 02:42:33 +00:00
|
|
|
|
|
|
|
|
dayjs.extend(relativeTime)
|
2025-04-18 05:59:12 +00:00
|
|
|
|
|
|
|
|
export const useFormatTimeFromNow = () => {
|
2025-12-30 06:38:23 +00:00
|
|
|
const locale = useLocale()
|
2025-04-18 05:59:12 +00:00
|
|
|
const formatTimeFromNow = useCallback((time: number) => {
|
2025-09-28 05:37:42 +00:00
|
|
|
const dayjsLocale = localeMap[locale] ?? 'en'
|
|
|
|
|
return dayjs(time).locale(dayjsLocale).fromNow()
|
2025-04-18 05:59:12 +00:00
|
|
|
}, [locale])
|
|
|
|
|
|
|
|
|
|
return { formatTimeFromNow }
|
|
|
|
|
}
|