Рефакторинг импорта dayjs и добавление утилиты форматирования дат. Все компоненты, использующие dayjs, теперь используют новую функцию formatDate для форматирования дат с учетом локали. Также добавлена поддержка обновления локали dayjs при изменении языка в i18next.
This commit is contained in:
30
src/utils/dayjs-config.ts
Normal file
30
src/utils/dayjs-config.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
import dayjs from 'dayjs';
|
||||
import 'dayjs/locale/ru';
|
||||
import 'dayjs/locale/en';
|
||||
import i18next from 'i18next';
|
||||
|
||||
// Функция для обновления локали dayjs при изменении языка в i18next
|
||||
export const updateDayjsLocale = () => {
|
||||
const currentLocale = i18next.language;
|
||||
|
||||
// Убедимся, что локаль поддерживается, иначе используем 'en'
|
||||
const locale = ['ru', 'en'].includes(currentLocale) ? currentLocale : 'en';
|
||||
|
||||
// Установим локаль для dayjs
|
||||
dayjs.locale(locale);
|
||||
};
|
||||
|
||||
// Слушаем изменения языка и обновляем локаль dayjs
|
||||
i18next.on('languageChanged', () => {
|
||||
updateDayjsLocale();
|
||||
});
|
||||
|
||||
// Вызываем функцию инициализации при импорте
|
||||
updateDayjsLocale();
|
||||
|
||||
// Хелпер для форматирования даты с учетом текущей локали
|
||||
export const formatDate = (date: string | Date | number, format = 'DD.MM.YYYY') => {
|
||||
return dayjs(date).format(format);
|
||||
};
|
||||
|
||||
export default dayjs;
|
||||
Reference in New Issue
Block a user