Enhance Providers component with time zone support

- Updated `RootLayout` to retrieve the user's time zone using `getTimeZone` from `next-intl/server`.
- Modified the `Providers` component to accept and pass the time zone prop to `NextIntlClientProvider`, improving localization capabilities.
This commit is contained in:
2026-04-01 18:21:16 +02:00
parent 79d9092d43
commit 75e5535a86
2 changed files with 15 additions and 3 deletions

View File

@@ -6,7 +6,7 @@ import { cn } from "@/lib/utils";
import { Providers } from "@/components/providers"; import { Providers } from "@/components/providers";
import { InitUser } from "@/components/init-user"; import { InitUser } from "@/components/init-user";
import { getAuthUser, getToken } from "@/lib/auth-server"; import { getAuthUser, getToken } from "@/lib/auth-server";
import { getLocale, getMessages } from "next-intl/server"; import { getLocale, getMessages, getTimeZone } from "next-intl/server";
const manrope = Manrope({ subsets: ["latin"], variable: "--font-sans" }); const manrope = Manrope({ subsets: ["latin"], variable: "--font-sans" });
@@ -23,6 +23,7 @@ export default async function RootLayout({
const initialToken = await getToken(); const initialToken = await getToken();
const locale = await getLocale(); const locale = await getLocale();
const messages = await getMessages(); const messages = await getMessages();
const timeZone = await getTimeZone();
const user = await getAuthUser(); const user = await getAuthUser();
if (user) { if (user) {
const id = user.userId ?? String(user._id); const id = user.userId ?? String(user._id);
@@ -59,7 +60,12 @@ export default async function RootLayout({
></script> ></script>
</head> </head>
<body className="min-h-full flex flex-col"> <body className="min-h-full flex flex-col">
<Providers initialToken={initialToken} locale={locale} messages={messages}> <Providers
initialToken={initialToken}
locale={locale}
messages={messages}
timeZone={timeZone}
>
<InitUser /> <InitUser />
{children} {children}
</Providers> </Providers>

View File

@@ -39,17 +39,23 @@ export function Providers({
initialToken, initialToken,
locale, locale,
messages, messages,
timeZone,
}: { }: {
children: ReactNode; children: ReactNode;
initialToken?: string | null; initialToken?: string | null;
locale?: string; locale?: string;
messages?: AbstractIntlMessages; messages?: AbstractIntlMessages;
timeZone?: string;
}) { }) {
const router = useRouter(); const router = useRouter();
return ( return (
<ThemeProvider attribute="class" defaultTheme="system" enableSystem> <ThemeProvider attribute="class" defaultTheme="system" enableSystem>
<NextIntlClientProvider locale={locale} messages={messages}> <NextIntlClientProvider
locale={locale}
messages={messages}
timeZone={timeZone}
>
<ConvexBetterAuthProvider <ConvexBetterAuthProvider
client={convex} client={convex}
authClient={authClient} authClient={authClient}