52 lines
1.4 KiB
TypeScript
52 lines
1.4 KiB
TypeScript
import type { Metadata } from "next";
|
|
import type { ReactNode } from "react";
|
|
import { siteConfig } from "@/lib/site";
|
|
import "./globals.css";
|
|
|
|
export const metadata: Metadata = {
|
|
metadataBase: new URL(siteConfig.siteUrl),
|
|
title: {
|
|
default: "Diyaa",
|
|
template: "%s | Diyaa",
|
|
},
|
|
description: "Bilingual professional website built for private-server deployment.",
|
|
applicationName: "Diyaa",
|
|
authors: [{ name: "Diyaa" }],
|
|
creator: "Diyaa",
|
|
publisher: "Diyaa",
|
|
alternates: {
|
|
languages: {
|
|
ar: "/ar",
|
|
en: "/en",
|
|
"x-default": "/ar",
|
|
},
|
|
},
|
|
};
|
|
|
|
const themeScript = `
|
|
(() => {
|
|
const locale = window.location.pathname.split("/").filter(Boolean)[0] === "en" ? "en" : "ar";
|
|
const direction = locale === "ar" ? "rtl" : "ltr";
|
|
document.documentElement.lang = locale;
|
|
document.documentElement.dir = direction;
|
|
try {
|
|
const storedTheme = localStorage.getItem("theme");
|
|
const activeTheme = storedTheme === "light" || storedTheme === "dark" ? storedTheme : "dark";
|
|
document.documentElement.setAttribute("data-theme", activeTheme);
|
|
} catch {
|
|
document.documentElement.setAttribute("data-theme", "dark");
|
|
}
|
|
})();
|
|
`;
|
|
|
|
export default function RootLayout({ children }: { children: ReactNode }) {
|
|
return (
|
|
<html lang="ar" dir="rtl" data-theme="dark" suppressHydrationWarning>
|
|
<head>
|
|
<script dangerouslySetInnerHTML={{ __html: themeScript }} />
|
|
</head>
|
|
<body>{children}</body>
|
|
</html>
|
|
);
|
|
}
|