mirror of
https://github.com/nicotsx/zerobyte.git
synced 2026-08-07 05:24:25 -04:00
fix: sanitize Accept-Language locale parsing (#746)
* fix: sanitize Accept-Language locale parsing * refactor(accept-language): prefer the highest quality language
This commit is contained in:
3 files changed
+79
-1
No files matched your search
@@ -2,6 +2,7 @@ import { createServerFn } from "@tanstack/react-start";
|
||||
import { getCookie, getRequestHeaders } from "@tanstack/react-start/server";
|
||||
import { THEME_COOKIE_NAME } from "~/client/components/theme-provider";
|
||||
import type { DateFormatPreference, TimeFormatPreference } from "~/client/lib/datetime";
|
||||
import { getLocaleFromAcceptLanguage } from "~/server/lib/accept-language";
|
||||
import { auth } from "~/server/lib/auth";
|
||||
|
||||
export const getRootLoaderData = createServerFn({ method: "GET" }).handler(async () => {
|
||||
@@ -12,7 +13,7 @@ export const getRootLoaderData = createServerFn({ method: "GET" }).handler(async
|
||||
|
||||
return {
|
||||
theme: (themeCookie === "light" ? "light" : "dark") as "light" | "dark",
|
||||
locale: (acceptLanguage?.split(",")[0] || "en-US") as string,
|
||||
locale: getLocaleFromAcceptLanguage(acceptLanguage),
|
||||
timeZone: process.env.TZ || Intl.DateTimeFormat().resolvedOptions().timeZone || "UTC",
|
||||
dateFormat: (session?.user.dateFormat ?? "MM/DD/YYYY") as DateFormatPreference,
|
||||
timeFormat: (session?.user.timeFormat ?? "12h") as TimeFormatPreference,
|
||||
|
||||
Reference in new issue
Block a user