64 lines
1.6 KiB
TypeScript
64 lines
1.6 KiB
TypeScript
import { Metadata, Viewport } from "next";
|
|
import Script from "next/script";
|
|
import { ReactElement } from "react";
|
|
import Container from "./components/container";
|
|
import ThemeProvider from "./components/theme-provider";
|
|
import { Toaster } from "./components/ui/toaster";
|
|
import { TooltipProvider } from "./components/ui/tooltip";
|
|
|
|
import "./globals.css";
|
|
import config from "@root/config.json";
|
|
import { inter } from "@/app/font/fonts";
|
|
|
|
export const viewport: Viewport = {
|
|
themeColor: "#3498DB",
|
|
};
|
|
|
|
export const metadata: Metadata = {
|
|
metadataBase: new URL(config.publicUrl),
|
|
title: {
|
|
template: "%s - " + config.name,
|
|
default: config.name,
|
|
},
|
|
description: config.description,
|
|
keywords: "Minecraft, APIs, wrapper, utility, development",
|
|
openGraph: {
|
|
title: config.name,
|
|
description: config.description,
|
|
url: config.publicUrl,
|
|
locale: "en_US",
|
|
type: "website",
|
|
images: [
|
|
{
|
|
url: `${config.publicUrl}/media/logo.png`,
|
|
},
|
|
],
|
|
},
|
|
twitter: {
|
|
card: "summary",
|
|
},
|
|
};
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: Readonly<{
|
|
children: React.ReactNode;
|
|
}>): ReactElement {
|
|
return (
|
|
<>
|
|
<Script defer data-domain="mcutils.xyz" src="https://analytics.fascinated.cc/js/script.js" />
|
|
<html className={inter.className} lang="en" suppressHydrationWarning>
|
|
<head />
|
|
<body>
|
|
<ThemeProvider attribute="class" defaultTheme="dark" enableSystem disableTransitionOnChange>
|
|
<TooltipProvider>
|
|
<Toaster />
|
|
<Container>{children}</Container>
|
|
</TooltipProvider>
|
|
</ThemeProvider>
|
|
</body>
|
|
</html>
|
|
</>
|
|
);
|
|
}
|