Files
ProxmoxVE_Scripts/frontend/src/app/layout.tsx
Bram Suurd 0067075ed1 Remove npm legacy errors, created single source of truth for ESlint. updated analytics url. updated script background (#5498)
* Update ScriptAccordion and ScriptItem components for improved styling

* Add README.md for Proxmox VE Helper-Scripts Frontend

* Remove testing dependencies and related test files from the frontend project

* Update analytics URL in siteConfig to point to community-scripts.org

* Refactor ESLint configuration to have one source of truth and run "npm lint" to apply new changes

* Update lint script in package.json to remove npm

* Add 'next' option to ESLint configuration for improved compatibility

* Update package dependencies and versions in package.json and package-lock.json

* Refactor theme provider import and enhance calendar component for dynamic icon rendering

* rename sidebar, alerts and buttons

* rename description and interfaces files

* rename more files

* change folder name

* Refactor tooltip logic to improve updateable condition handling

* Enhance CommandMenu to prevent duplicate scripts across categories

* Remove test step from frontend CI/CD workflow
2025-06-28 00:38:09 +02:00

124 lines
3.9 KiB
TypeScript

import type { Metadata } from "next";
import { NuqsAdapter } from "nuqs/adapters/next/app";
import { Inter } from "next/font/google";
import React from "react";
import { ThemeProvider } from "@/components/theme-provider";
import { analytics, basePath } from "@/config/site-config";
import "@/styles/globals.css";
import QueryProvider from "@/components/query-provider";
import { Toaster } from "@/components/ui/sonner";
import Footer from "@/components/footer";
import Navbar from "@/components/navbar";
const inter = Inter({ subsets: ["latin"] });
export const metadata: Metadata = {
title: "Proxmox VE Helper-Scripts",
description:
"The official website for the Proxmox VE Helper-Scripts (Community) Repository. Featuring over 300+ scripts to help you manage your Proxmox VE environment.",
applicationName: "Proxmox VE Helper-Scripts",
generator: "Next.js",
referrer: "origin-when-cross-origin",
keywords: [
"Proxmox VE",
"Helper-Scripts",
"tteck",
"helper",
"scripts",
"proxmox",
"VE",
"virtualization",
"containers",
"LXC",
"VM",
],
authors: [
{ name: "Bram Suurd", url: "https://github.com/BramSuurdje" },
{ name: "Community Scripts", url: "https://github.com/Community-Scripts" },
],
creator: "Bram Suurd",
publisher: "Community Scripts",
metadataBase: new URL(`https://community-scripts.github.io/${basePath}/`),
alternates: {
canonical: `https://community-scripts.github.io/${basePath}/`,
},
viewport: {
width: "device-width",
initialScale: 1,
maximumScale: 5,
},
formatDetection: {
email: false,
address: false,
telephone: false,
},
openGraph: {
title: "Proxmox VE Helper-Scripts",
description:
"The official website for the Proxmox VE Helper-Scripts (Community) Repository. Featuring over 300+ scripts to help you manage your Proxmox VE environment.",
url: `https://community-scripts.github.io/${basePath}/`,
siteName: "Proxmox VE Helper-Scripts",
images: [
{
url: `https://community-scripts.github.io/${basePath}/defaultimg.png`,
width: 1200,
height: 630,
alt: "Proxmox VE Helper-Scripts",
},
],
locale: "en_US",
type: "website",
},
twitter: {
card: "summary_large_image",
title: "Proxmox VE Helper-Scripts",
creator: "@BramSuurdje",
description:
"The official website for the Proxmox VE Helper-Scripts (Community) Repository. Featuring over 300+ scripts to help you manage your Proxmox VE environment.",
images: [`https://community-scripts.github.io/${basePath}/defaultimg.png`],
},
manifest: "/manifest.webmanifest",
appleWebApp: {
capable: true,
statusBarStyle: "default",
title: "Proxmox VE Helper-Scripts",
},
};
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="en" suppressHydrationWarning>
<head>
<script defer src={`https://${analytics.url}/script.js`} data-website-id={analytics.token}></script>
<link rel="canonical" href={metadata.metadataBase?.href} />
<link rel="manifest" href="manifest.webmanifest" />
<link rel="preconnect" href="https://api.github.com" />
</head>
<body className={inter.className}>
<ThemeProvider attribute="class" defaultTheme="dark" enableSystem disableTransitionOnChange>
<div className="flex w-full flex-col justify-center">
<Navbar />
<div className="flex min-h-screen flex-col justify-center">
<div className="flex w-full justify-center">
<div className="w-full max-w-[1440px] ">
<QueryProvider>
<NuqsAdapter>{children}</NuqsAdapter>
</QueryProvider>
<Toaster richColors />
</div>
</div>
<Footer />
</div>
</div>
</ThemeProvider>
</body>
</html>
);
}