import { formatDistanceToNow } from "date-fns"; import { enUS as dateFnsEnUS, zhCN as dateFnsZhCN } from "date-fns/locale"; import { detectLocale, type Locale } from "@/core/i18n"; import { getLocaleFromCookie } from "@/core/i18n/cookies"; function getDateFnsLocale(locale: Locale) { switch (locale) { case "zh-CN": return dateFnsZhCN; case "en-US": default: return dateFnsEnUS; } } export function formatTimeAgo(date: Date | string | number, locale?: Locale) { const effectiveLocale = locale ?? (getLocaleFromCookie() as Locale | null) ?? // Fallback when cookie is missing (or on first render) detectLocale(); return formatDistanceToNow(date, { addSuffix: true, locale: getDateFnsLocale(effectiveLocale), }); }