9router/src/app/layout.js

49 lines
1.5 KiB
JavaScript
Raw Normal View History

2026-01-04 21:58:59 -05:00
import { Inter } from "next/font/google";
import "material-symbols/outlined.css";
2026-01-04 21:58:59 -05:00
import "./globals.css";
import { ThemeProvider } from "@/shared/components/ThemeProvider";
import "@/lib/network/initOutboundProxy"; // Auto-initialize outbound proxy env
2026-03-01 21:31:16 -05:00
import { initConsoleLogCapture } from "@/lib/consoleLogBuffer";
import { RuntimeI18nProvider } from "@/i18n/RuntimeI18nProvider";
2026-03-01 21:31:16 -05:00
// Hook console immediately at module load time (server-side only, runs once)
initConsoleLogCapture();
2026-01-04 21:58:59 -05:00
const inter = Inter({
subsets: ["latin"],
variable: "--font-inter",
});
export const metadata = {
title: "9Router - AI Infrastructure Management",
description: "One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly.",
icons: {
icon: "/favicon.svg",
},
2026-01-04 21:58:59 -05:00
};
export const viewport = {
themeColor: "#0a0a0a",
};
2026-01-04 21:58:59 -05:00
export default function RootLayout({ children }) {
return (
<html lang="en" suppressHydrationWarning>
<head>
<script
dangerouslySetInnerHTML={{
__html: `if(document.fonts&&document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}`,
}}
/>
2026-01-04 21:58:59 -05:00
</head>
<body className={`${inter.variable} font-sans antialiased`}>
<ThemeProvider>
<RuntimeI18nProvider>
{children}
</RuntimeI18nProvider>
2026-01-04 21:58:59 -05:00
</ThemeProvider>
</body>
</html>
);
}