elmeg-demo/frontend/app/layout.tsx
fullsizemalt b1c5baf77c
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
feat(analytics): update umami tracking script
2025-12-24 11:03:40 -08:00

63 lines
1.8 KiB
TypeScript

import type { Metadata } from "next";
import { Space_Grotesk, JetBrains_Mono } from "next/font/google";
import "./globals.css";
import { Navbar } from "@/components/layout/navbar";
import { cn } from "@/lib/utils";
import { PreferencesProvider } from "@/contexts/preferences-context";
import { AuthProvider } from "@/contexts/auth-context";
import { ThemeProvider } from "@/components/theme-provider";
import { Footer } from "@/components/layout/footer";
import Script from "next/script";
const spaceGrotesk = Space_Grotesk({
subsets: ["latin"],
variable: "--font-sans",
});
const jetbrainsMono = JetBrains_Mono({
subsets: ["latin"],
variable: "--font-mono",
});
export const metadata: Metadata = {
title: "Elmeg - Fandom Archive",
description: "The ultimate fandom community platform.",
};
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="en" suppressHydrationWarning>
<body className={cn(
spaceGrotesk.variable,
jetbrainsMono.variable,
"min-h-screen bg-background font-sans antialiased flex flex-col"
)}>
<Script
defer
src="https://stats.elmeg.xyz/stats"
data-website-id="4338bbf0-fe74-4256-8973-8cdc0cffe08c"
/>
<ThemeProvider
attribute="class"
defaultTheme="dark"
enableSystem
disableTransitionOnChange
>
<AuthProvider>
<PreferencesProvider>
<Navbar />
<main className="flex-1 w-full max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6">
{children}
</main>
<Footer />
</PreferencesProvider>
</AuthProvider>
</ThemeProvider>
</body>
</html>
);
}