import { useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { Locale } from 'date-fns'; import { enUS, de, es, fr } from 'date-fns/locale'; const localeMap: Record = { en: enUS, de: de, es: es, fr: fr, }; /** * Hook to get the date-fns locale based on the current i18n language. * Use this with date-fns functions that support locale, like formatDistanceToNow. * * @example * const locale = useDateFnsLocale(); * formatDistanceToNow(date, { addSuffix: true, locale }); */ export const useDateFnsLocale = (): Locale => { const { i18n } = useTranslation(); return useMemo(() => { const lang = i18n.language?.split('-')[0] || 'en'; return localeMap[lang] || enUS; }, [i18n.language]); }; export default useDateFnsLocale;