From ea1dcdc80da917de3c7737bdd6edda8e0bbb8720 Mon Sep 17 00:00:00 2001 From: Jack LaFond Date: Mon, 23 Dec 2024 17:35:53 -0500 Subject: [PATCH] feat(layout): migrate over layout to app router --- src/app/layout.tsx | 90 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 src/app/layout.tsx diff --git a/src/app/layout.tsx b/src/app/layout.tsx new file mode 100644 index 0000000..802c15e --- /dev/null +++ b/src/app/layout.tsx @@ -0,0 +1,90 @@ +import "@/styles/globals.css"; +import { GeistSans } from "geist/font/sans"; +import { ThemeProvider } from "@/components/theme-provider"; +import { PlayersProvider } from "@/contexts/players-context"; +import { PreferencesProvider } from "@/contexts/preferences-context"; +import { SidebarProvider } from "@/components/ui/sidebar"; +import { AppSidebar } from "@/components/sidebar/main"; +import { SidebarInset } from "@/components/ui/sidebar"; +import { Toaster } from "sonner"; +import ErrorBoundary from "@/components/error-boundary"; +import Script from "next/script"; +import type { Metadata } from "next"; + +// TODO: look at dynamic metadata for pages. what's the easiest way to apply it across multiple pages +export const metadata: Metadata = { + title: "Stardew.app", + description: + "Keep track of your Stardew Valley 1.5 and 1.6 progression. Upload your save file and track your progress towards 100% completion.", + metadataBase: new URL("https://stardew.app"), + openGraph: { + type: "website", + url: "https://stardew.app", + title: "Stardew.app", + description: + "Keep track of your Stardew Valley 1.5 and 1.6 progression. Upload your save file and track your progress towards 100% completion.", + images: [ + { + url: "/favicon.png", + width: 64, + height: 64, + }, + ], + }, + twitter: { + card: "summary", + title: "stardew.app", + description: + "Keep track of your Stardew Valley 1.5 and 1.6 progression. Upload your save file and track your progress towards 100% completion.", + images: [ + { + url: "/favicon.png", + width: 512, + height: 512, + }, + ], + }, + icons: { + icon: "/favicon.png", + }, +}; + +export default function RootLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + + +