Files
better-auth/docs/app/layout.tsx

64 lines
1.8 KiB
TypeScript

import { Navbar } from "@/components/nav-bar";
import "./global.css";
import { RootProvider } from "fumadocs-ui/provider";
import type { ReactNode } from "react";
import { NavbarProvider } from "@/components/nav-mobile";
import { GeistMono } from "geist/font/mono";
import { GeistSans } from "geist/font/sans";
import { baseUrl, createMetadata } from "@/lib/metadata";
import { Analytics } from "@vercel/analytics/react";
import { ThemeProvider } from "@/components/theme-provider";
export const metadata = createMetadata({
title: {
template: "%s | Better Auth",
default: "Better Auth",
},
description: "The most comprehensive authentication library for TypeScript.",
metadataBase: baseUrl,
});
export default function Layout({ children }: { children: ReactNode }) {
return (
<html lang="en" suppressHydrationWarning>
<head>
<link rel="icon" href="/favicon/favicon.ico" sizes="any" />
<script
dangerouslySetInnerHTML={{
__html: `
try {
if (localStorage.theme === 'dark' || ((!('theme' in localStorage) || localStorage.theme === 'system') && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
document.querySelector('meta[name="theme-color"]').setAttribute('content')
}
} catch (_) {}
`,
}}
/>
</head>
<body
className={`${GeistSans.variable} ${GeistMono.variable} bg-background font-sans relative `}
>
<ThemeProvider
attribute="class"
defaultTheme="dark"
enableSystem
disableTransitionOnChange
>
<RootProvider
theme={{
enableSystem: true,
defaultTheme: "dark",
}}
>
<NavbarProvider>
<Navbar />
{children}
</NavbarProvider>
</RootProvider>
<Analytics />
</ThemeProvider>
</body>
</html>
);
}