web-humas-fe/app/layout.tsx

86 lines
2.5 KiB
TypeScript
Raw Normal View History

2024-12-11 10:13:02 +00:00
// RootLayout.tsx
"use client";
2024-02-05 09:37:05 +00:00
import { fontSans } from "@/config/fonts";
import { siteConfig } from "@/config/site";
2025-02-05 11:23:03 +00:00
import { Inter } from "next/font/google";
2024-01-05 06:57:30 +00:00
import "@/styles/globals.css";
2024-02-05 09:37:05 +00:00
import clsx from "clsx";
2024-01-05 06:57:30 +00:00
import { Metadata } from "next";
import { Providers } from "./providers";
import LoadScript from "@/utils/global";
2024-12-11 10:13:02 +00:00
import { NextIntlClientProvider } from "next-intl";
import { useEffect, useState, type ReactNode } from "react";
import storedLanguage from "@/store/language-store";
2025-02-05 11:23:03 +00:00
const inter = Inter({ subsets: ["latin"] });
2024-01-05 06:57:30 +00:00
2024-12-11 10:13:02 +00:00
// export const metadata: Metadata = {
// title: {
// default: siteConfig.name,
// template: `%s - ${siteConfig.name}`,
// },
// description: siteConfig.description,
// themeColor: [
// { media: "(prefers-color-scheme: light)", color: "white" },
// { media: "(prefers-color-scheme: dark)", color: "black" },
// ],
// icons: {
// icon: "/logohumas.ico",
// shortcut: "/favicon-16x16.png",
// apple: "/apple-touch-icon.png",
// },
// };
2024-01-05 06:57:30 +00:00
2024-12-12 09:48:17 +00:00
export default function RootLayout({ children }: { children: ReactNode }) {
2024-12-11 10:13:02 +00:00
const [localeNow, setLocaleNow] = useState<string>("id");
const locale = storedLanguage((state) => state.locale);
useEffect(() => {
if (locale) {
setLocaleNow(locale);
}
}, [locale]);
const [messages, setMessages] = useState<any>(null);
useEffect(() => {
(async () => {
const loadedMessages = (await import(`../messages/${locale}.json`))
.default;
setMessages(loadedMessages);
})();
}, [locale]);
return (
<html lang="en" suppressHydrationWarning className="scroll-smooth">
<head>
2025-03-11 10:19:37 +00:00
<title>
DIVISI HUMAS POLRI - Pengelolaan Informasi & Dokumentasi Polri
</title>
<meta
name="theme-color"
content="white"
media="(prefers-color-scheme: light)"
/>
2025-02-13 03:05:04 +00:00
<link rel="icon" href="/logohumas.png" />
<meta
name="theme-color"
content="black"
media="(prefers-color-scheme: dark)"
/>
2025-03-11 10:19:37 +00:00
<meta property="og:image" content="/logohumas.png" />
<LoadScript />
</head>
<body
2025-02-05 11:23:03 +00:00
className={clsx("bg-background font-sans antialiased", inter.className)}
>
2024-12-11 10:13:02 +00:00
<NextIntlClientProvider locale={localeNow} messages={messages}>
2025-02-26 08:34:45 +00:00
<Providers themeProps={{ attribute: "class", defaultTheme: "light" }}>
<main className="">{children}</main>
2024-12-11 10:13:02 +00:00
</Providers>
</NextIntlClientProvider>
</body>
</html>
);
2024-01-05 06:57:30 +00:00
}