Openstatus www.openstatus.dev
at 4c0f4c00a38753a5d0dfd7e7b7b7706dec6f1503 112 lines 2.7 kB view raw
1import type { Metadata } from "next"; 2import { Geist, Geist_Mono, Inter } from "next/font/google"; 3import "./globals.css"; 4import { TailwindIndicator } from "@/components/tailwind-indicator"; 5import { ThemeProvider } from "@/components/theme-provider"; 6import { Toaster } from "@/components/ui/sonner"; 7import { auth } from "@/lib/auth"; 8import { TRPCReactProvider } from "@/lib/trpc/client"; 9import { cn } from "@/lib/utils"; 10import { SessionProvider } from "next-auth/react"; 11import LocalFont from "next/font/local"; 12import { NuqsAdapter } from "nuqs/adapters/next/app"; 13import { ogMetadata, twitterMetadata } from "./metadata"; 14import { defaultMetadata } from "./metadata"; 15 16const cal = LocalFont({ 17 src: "../../public/fonts/CalSans-SemiBold.ttf", 18 variable: "--font-cal-sans", 19}); 20 21const commitMono = LocalFont({ 22 src: [ 23 { 24 path: "../../public/fonts/CommitMono-400-Regular.otf", 25 weight: "400", 26 style: "normal", 27 }, 28 { 29 path: "../../public/fonts/CommitMono-400-Italic.otf", 30 weight: "400", 31 style: "italic", 32 }, 33 { 34 path: "../../public/fonts/CommitMono-700-Regular.otf", 35 weight: "700", 36 style: "normal", 37 }, 38 { 39 path: "../../public/fonts/CommitMono-700-Italic.otf", 40 weight: "700", 41 style: "italic", 42 }, 43 ], 44 variable: "--font-commit-mono", 45}); 46 47const inter = Inter({ 48 subsets: ["latin"], 49 variable: "--font-inter", 50}); 51 52const geistSans = Geist({ 53 variable: "--font-geist-sans", 54 subsets: ["latin"], 55}); 56 57const geistMono = Geist_Mono({ 58 variable: "--font-geist-mono", 59 subsets: ["latin"], 60}); 61 62export const metadata: Metadata = { 63 ...defaultMetadata, 64 twitter: { 65 ...twitterMetadata, 66 }, 67 openGraph: { 68 ...ogMetadata, 69 }, 70}; 71 72// export const dynamic = "error"; 73 74export default async function RootLayout({ 75 children, 76}: Readonly<{ 77 children: React.ReactNode; 78}>) { 79 const session = await auth(); 80 81 return ( 82 <html lang="en" suppressHydrationWarning> 83 <body 84 className={cn( 85 geistSans.variable, 86 geistMono.variable, 87 cal.variable, 88 commitMono.variable, 89 inter.variable, 90 "font-sans antialiased ", 91 )} 92 > 93 <SessionProvider session={session}> 94 <TRPCReactProvider> 95 <NuqsAdapter> 96 <ThemeProvider 97 attribute="class" 98 defaultTheme="system" 99 enableSystem 100 disableTransitionOnChange 101 > 102 {children} 103 <TailwindIndicator /> 104 <Toaster richColors expand /> 105 </ThemeProvider> 106 </NuqsAdapter> 107 </TRPCReactProvider> 108 </SessionProvider> 109 </body> 110 </html> 111 ); 112}