Openstatus
www.openstatus.dev
1import type { Metadata } from "next";
2import { Geist, Geist_Mono } from "next/font/google";
3import "./globals.css";
4import { TailwindIndicator } from "@/components/tailwind-indicator";
5import { TRPCReactProvider } from "@/lib/trpc/client";
6import { cn } from "@/lib/utils";
7import LocalFont from "next/font/local";
8import { NuqsAdapter } from "nuqs/adapters/next/app";
9import { ogMetadata, twitterMetadata } from "./metadata";
10import { defaultMetadata } from "./metadata";
11
12const cal = LocalFont({
13 src: "../../public/fonts/CalSans-SemiBold.ttf",
14 variable: "--font-cal-sans",
15});
16
17const geistSans = Geist({
18 variable: "--font-geist-sans",
19 subsets: ["latin"],
20});
21
22const geistMono = Geist_Mono({
23 variable: "--font-geist-mono",
24 subsets: ["latin"],
25});
26
27const commitMono = LocalFont({
28 src: [
29 {
30 path: "../../public/fonts/CommitMono-400-Regular.otf",
31 weight: "400",
32 style: "normal",
33 },
34 {
35 path: "../../public/fonts/CommitMono-400-Italic.otf",
36 weight: "400",
37 style: "italic",
38 },
39 {
40 path: "../../public/fonts/CommitMono-700-Regular.otf",
41 weight: "700",
42 style: "normal",
43 },
44 {
45 path: "../../public/fonts/CommitMono-700-Italic.otf",
46 weight: "700",
47 style: "italic",
48 },
49 ],
50 variable: "--font-commit-mono",
51});
52
53export const metadata: Metadata = {
54 ...defaultMetadata,
55 twitter: {
56 ...twitterMetadata,
57 },
58 openGraph: {
59 ...ogMetadata,
60 },
61};
62
63// export const dynamic = "error";
64
65export default function RootLayout({
66 children,
67}: Readonly<{
68 children: React.ReactNode;
69}>) {
70 return (
71 <html lang="en" suppressHydrationWarning>
72 <body
73 className={cn(
74 geistSans.variable,
75 geistMono.variable,
76 cal.variable,
77 commitMono.variable,
78 "antialiased",
79 )}
80 >
81 <NuqsAdapter>
82 <TRPCReactProvider>
83 {children}
84 <TailwindIndicator />
85 </TRPCReactProvider>
86 </NuqsAdapter>
87 </body>
88 </html>
89 );
90}