feat(workout-streak-header): enhance date formatting by integrating locale support and adding multiple language formats in date utility

This commit is contained in:
Mathias
2025-07-14 18:33:01 +02:00
parent a3abfd1060
commit bedef3037f
2 changed files with 10 additions and 3 deletions
@@ -3,7 +3,9 @@ import utc from "dayjs/plugin/utc";
import timezone from "dayjs/plugin/timezone";
import dayjs from "dayjs";
import { useCurrentLocale } from "locales/client";
import { cn } from "@/shared/lib/utils";
import { formatDate } from "@/shared/lib/date";
import { useWorkoutSessions } from "@/features/workout-session/model/use-workout-sessions";
// Configure dayjs with timezone support
@@ -56,7 +58,7 @@ export interface StreakData {
*/
export default function WorkoutStreakHeader({ className, streakCount = DEFAULT_STREAK_COUNT }: WorkoutStreakHeaderProps) {
const { data: sessions, isLoading: sessionsLoading, error: sessionsError } = useWorkoutSessions();
const locale = useCurrentLocale();
// Get user's timezone for accurate date calculations (memoized for performance)
const userTimezone = useMemo(() => {
try {
@@ -113,8 +115,9 @@ export default function WorkoutStreakHeader({ className, streakCount = DEFAULT_S
}
});
const date = formatDate(targetDate.toDate(), locale);
return {
date: targetDate.format("YYYY-MM-DD"),
date,
hasWorkout: !!session,
session: session || undefined,
};
+5 -1
View File
@@ -7,7 +7,11 @@ import "dayjs/locale/en";
*/
const DEFAULT_FORMATS = {
en: "MMMM D, YYYY", // January 15, 2024
fr: "D MMMM YYYY", // 15 janvier 2024
fr: "D MMMM YYYY", // 15 janvier 2024,
es: "D MMMM YYYY", // 15 de enero de 2024,
"zh-CN": "YYYY年M月D日", // 2024年1月15日,
ru: "D MMMM YYYY", // 15 января 2024,
pt: "D MMMM YYYY", // 15 de janeiro de 2024,
} as const;
/**