Files
tipilan/src/app/[locale]/layout.tsx
2026-05-02 20:59:04 +03:00

42 lines
1.1 KiB
TypeScript

import { NextIntlClientProvider } from "next-intl";
import { setRequestLocale, getMessages } from "next-intl/server";
import { ThemeProvider } from "@/components/Theme-provider";
import SidebarParent from "@/components/SidebarParent";
import Footer from "@/components/Footer";
export default async function LocaleLayout({
children,
params,
}: Readonly<{
children: React.ReactNode;
params: Promise<{ locale: string }>;
}>) {
const { locale } = await params;
// Enable static rendering
setRequestLocale(locale);
// Provide messages for client-side components
const messages = await getMessages();
return (
<div lang={locale}>
<NextIntlClientProvider messages={messages}>
<ThemeProvider
attribute="class"
defaultTheme="dark"
enableSystem={false}
forcedTheme="dark"
disableTransitionOnChange
>
<div className="min-h-screen flex flex-col">
<SidebarParent />
<main className="flex-1 flex flex-col">{children}</main>
<Footer />
</div>
</ThemeProvider>
</NextIntlClientProvider>
</div>
);
}