54 lines
1.9 KiB
TypeScript
54 lines
1.9 KiB
TypeScript
import type { Metadata } from "next";
|
|
import { Inter } from "next/font/google";
|
|
import "./globals.css";
|
|
import "./theme.css";
|
|
import { ThemeProvider } from "@/providers/theme-provider";
|
|
import MountedProvider from "@/providers/mounted.provider";
|
|
import { Toaster } from "@/components/ui/toaster";
|
|
import { Toaster as SonnerToaster } from "@/components/ui/sonner";
|
|
const inter = Inter({ subsets: ["latin"] });
|
|
// language
|
|
import { getLangDir } from "rtl-detect";
|
|
import { NextIntlClientProvider } from "next-intl";
|
|
import { getMessages } from "next-intl/server";
|
|
import DirectionProvider from "@/providers/direction-provider";
|
|
import AuthProvider from "@/providers/auth.provider";
|
|
import LoadScript from "@/utils/globals";
|
|
|
|
export const metadata: Metadata = {
|
|
title: "Media Hub | POLRI",
|
|
description: "created by codeshaper",
|
|
};
|
|
|
|
export default async function RootLayout({
|
|
children,
|
|
params: { locale },
|
|
}: Readonly<{
|
|
children: React.ReactNode;
|
|
params: { locale: string };
|
|
}>) {
|
|
const messages = await getMessages();
|
|
const direction = getLangDir(locale);
|
|
return (
|
|
<html lang={locale} dir={direction}>
|
|
<head>
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossOrigin="anonymous" />
|
|
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap" rel="stylesheet" />
|
|
<LoadScript />
|
|
</head>
|
|
<body className={`${inter.className} dashcode-app`}>
|
|
<NextIntlClientProvider messages={messages} locale={locale}>
|
|
<AuthProvider>
|
|
<ThemeProvider attribute="class" defaultTheme="light">
|
|
<DirectionProvider direction={direction}>{children}</DirectionProvider>
|
|
<Toaster />
|
|
<SonnerToaster />
|
|
</ThemeProvider>
|
|
</AuthProvider>
|
|
</NextIntlClientProvider>
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|