import dayjs from 'dayjs' import relativeTime from 'dayjs/plugin/relativeTime' import { useCallback } from 'react' import { useI18N } from '@/context/i18n' import type { Locale } from '@/i18n-config' 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' import 'dayjs/locale/zh-cn' import 'dayjs/locale/zh-tw' dayjs.extend(relativeTime) const localeMap: Record = { 'en-US': 'en', 'zh-Hans': 'zh-cn', 'zh-Hant': 'zh-tw', 'pt-BR': 'pt-br', 'es-ES': 'es', 'fr-FR': 'fr', 'de-DE': 'de', 'ja-JP': 'ja', 'ko-KR': 'ko', 'ru-RU': 'ru', 'it-IT': 'it', 'th-TH': 'th', 'id-ID': 'id', 'uk-UA': 'uk', 'vi-VN': 'vi', 'ro-RO': 'ro', 'pl-PL': 'pl', 'hi-IN': 'hi', 'tr-TR': 'tr', 'fa-IR': 'fa', 'sl-SI': 'sl', } export const useFormatTimeFromNow = () => { const { locale } = useI18N() const formatTimeFromNow = useCallback((time: number) => { const dayjsLocale = localeMap[locale] ?? 'en' return dayjs(time).locale(dayjsLocale).fromNow() }, [locale]) return { formatTimeFromNow } }