mirror of
https://github.com/Snouzy/workout-cool.git
synced 2026-05-19 14:40:35 +00:00
feat(workout-streak-header): enhance date formatting by integrating locale support and adding multiple language formats in date utility
This commit is contained in:
@@ -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,
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user