This repository has been archived on 2024-10-29. You can view files and clone it, but cannot push or open issues or pull requests.
Files
scoresaber-reloadedv3/src/app/layout.tsx

89 lines
3.1 KiB
TypeScript
Raw Normal View History

2024-09-25 15:08:06 +01:00
import Footer from "@/components/footer";
2024-09-12 19:56:09 +01:00
import { PreloadResources } from "@/components/preload-resources";
2024-09-25 15:08:06 +01:00
import { QueryProvider } from "@/components/providers/query-provider";
import { ThemeProvider } from "@/components/providers/theme-provider";
import { Toaster } from "@/components/ui/toaster";
import { TooltipProvider } from "@/components/ui/tooltip";
2024-09-12 23:26:02 +01:00
import { AnimatePresence } from "framer-motion";
2024-09-05 17:09:17 +01:00
import type { Metadata } from "next";
import localFont from "next/font/local";
2024-09-11 23:10:16 +01:00
import BackgroundImage from "../components/background-image";
import DatabaseLoader from "../components/loaders/database-loader";
import NavBar from "../components/navbar/navbar";
2024-09-05 17:09:17 +01:00
2024-09-25 15:08:06 +01:00
import "./globals.css";
2024-09-08 22:35:32 +01:00
const siteFont = localFont({
2024-09-12 19:16:13 +01:00
src: "./fonts/JetBrainsMono-Regular.woff2",
2024-09-05 17:09:17 +01:00
weight: "100 900",
});
export const metadata: Metadata = {
2024-09-08 22:35:32 +01:00
title: {
default: "ScoreSaber Reloaded",
2024-09-25 15:08:06 +01:00
template: "%s - SSR",
2024-09-08 22:35:32 +01:00
},
applicationName: "ScoreSaber Reloaded",
authors: [
{
name: "Fascinated",
url: "https://git.fascinated.cc/Fascinated",
},
],
robots: {
index: true,
follow: true,
nocache: false,
googleBot: {
index: true,
follow: true,
},
},
keywords:
"scoresaber, score saber, scoresaber stats, score saber stats, beatleader, beat leader," +
"scoresaber reloaded, ssr, github, score aggregation, scoresaber api, score saber api, scoresaber api," +
"BeatSaber, Overlay, OBS, Twitch, YouTube, BeatSaber Overlay, Github, Beat Saber overlay, ScoreSaber, BeatLeader," +
"VR gaming, Twitch stream enhancement, Customizable overlay, Real-time scores, Rankings, Leaderboard information," +
"Stream enhancement, Professional overlay, Easy to use overlay builder.",
openGraph: {
title: "Scoresaber Reloaded",
2024-09-25 15:08:06 +01:00
description: "Scoresaber Reloaded is a new way to view your scores and get more stats about your and your plays",
2024-09-08 22:35:32 +01:00
url: "https://ssr.fascinated.cc",
locale: "en_US",
type: "website",
},
2024-09-25 15:08:06 +01:00
description: "Scoresaber Reloaded is a new way to view your scores and get more stats about your and your plays",
2024-09-05 17:09:17 +01:00
};
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="en">
2024-09-25 15:08:06 +01:00
<body className={`${siteFont.className} antialiased w-full h-full relative`}>
2024-09-08 22:35:32 +01:00
<DatabaseLoader>
<Toaster />
<BackgroundImage />
2024-09-12 19:56:09 +01:00
<PreloadResources />
2024-09-27 22:05:46 +01:00
<TooltipProvider delayDuration={100}>
2024-09-25 15:08:06 +01:00
<ThemeProvider attribute="class" defaultTheme="dark" enableSystem disableTransitionOnChange>
<QueryProvider>
2024-09-12 23:26:02 +01:00
<AnimatePresence>
2024-09-26 12:46:46 +01:00
<main className="flex flex-col min-h-screen gap-2 text-white">
2024-09-12 23:26:02 +01:00
<NavBar />
<div className="z-[1] m-auto flex flex-col flex-grow items-center md:max-w-[1600px]">
2024-09-13 20:52:27 +01:00
{children}
</div>
<Footer />
2024-09-12 23:26:02 +01:00
</main>
</AnimatePresence>
</QueryProvider>
2024-09-08 22:35:32 +01:00
</ThemeProvider>
</TooltipProvider>
</DatabaseLoader>
2024-09-05 17:09:17 +01:00
</body>
</html>
);
}