From d6f6eb96f7912fb4340e49e5b73b68142f3e6755 Mon Sep 17 00:00:00 2001 From: Jared Pereira Date: Tue, 28 Oct 2025 20:34:24 -0400 Subject: [PATCH] handle failed locale from header --- src/hooks/useLocalizedDate.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/hooks/useLocalizedDate.ts b/src/hooks/useLocalizedDate.ts index 8feb77ad..4fab87f3 100644 --- a/src/hooks/useLocalizedDate.ts +++ b/src/hooks/useLocalizedDate.ts @@ -36,10 +36,18 @@ export function useLocalizedDate( dateTime = dateTime.setZone(effectiveTimezone); } + // On initial page load, use header locale. After hydration, use system locale // Parse locale from accept-language header (take first locale) // accept-language format: "en-US,en;q=0.9,es;q=0.8" - const locale = language?.split(",")[0]?.split(";")[0]?.trim() || "en-US"; + const effectiveLocale = isInitialPageLoad + ? language?.split(",")[0]?.split(";")[0]?.trim() || "en-US" + : Intl.DateTimeFormat().resolvedOptions().locale; - return dateTime.toLocaleString(options, { locale }); + try { + return dateTime.toLocaleString(options, { locale: effectiveLocale }); + } catch (error) { + // Fallback to en-US if locale is invalid + return dateTime.toLocaleString(options, { locale: "en-US" }); + } }, [dateString, options, timezone, language, isInitialPageLoad]); } -- 2.51.2