30 lines
1.0 KiB
TypeScript
30 lines
1.0 KiB
TypeScript
import type { Metadata } from "next";
|
|
import { Nav } from "@/components/Nav";
|
|
import { AuthProvider } from "@/components/AuthProvider";
|
|
import { ThemeProvider } from "@/components/ThemeProvider";
|
|
import "./globals.css";
|
|
|
|
export const metadata: Metadata = {
|
|
title: "DRB Portal",
|
|
description: "Distributed Radio Bot — Control & Monitoring",
|
|
};
|
|
|
|
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
|
return (
|
|
<html lang="en">
|
|
<head>
|
|
{/* Prevent flash of wrong theme before React hydrates */}
|
|
<script dangerouslySetInnerHTML={{ __html: `(function(){try{var t=localStorage.getItem('drb-theme');if(t!=='light')document.documentElement.classList.add('dark');}catch(e){}})();` }} />
|
|
</head>
|
|
<body className="min-h-screen bg-gray-950">
|
|
<ThemeProvider>
|
|
<AuthProvider>
|
|
<Nav />
|
|
<main className="max-w-screen-2xl mx-auto px-4 md:px-6 py-6">{children}</main>
|
|
</AuthProvider>
|
|
</ThemeProvider>
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|