ProxMenux/web/app/layout.tsx

54 lines
2.6 KiB
TypeScript
Raw Normal View History

2025-02-13 17:28:49 +01:00
import "./globals.css"
2025-02-18 22:20:33 +01:00
import { Inter } from "next/font/google"
2025-02-13 23:04:40 +01:00
import Navbar from "@/components/navbar"
import MouseMoveEffect from "@/components/mouse-move-effect"
2025-02-16 11:29:56 +01:00
import type React from "react"
2025-02-18 22:20:33 +01:00
import { metadata } from "./metadata"
2025-02-13 17:28:49 +01:00
const inter = Inter({ subsets: ["latin"] })
2025-02-18 20:00:51 +01:00
export { metadata }
2025-02-16 11:29:56 +01:00
2025-02-18 22:20:33 +01:00
export default function RootLayout({ children }: { children: React.ReactNode }) {
2025-02-13 17:28:49 +01:00
return (
<html lang="en" className="dark">
2025-02-18 22:20:33 +01:00
<head>
2025-02-18 22:33:36 +01:00
<title>{metadata.title?.default ?? "ProxMenux"}</title>
2025-02-18 22:20:33 +01:00
<meta name="description" content={metadata.description} />
2025-02-18 22:30:20 +01:00
<meta name="application-name" content={metadata.applicationName} />
<meta name="author" content={metadata.authors?.[0]?.name} />
<meta name="generator" content={metadata.generator} />
<meta name="keywords" content={metadata.keywords?.join(",")} />
<meta name="referrer" content={metadata.referrer} />
<meta name="creator" content={metadata.creator} />
<meta name="publisher" content={metadata.publisher} />
<meta property="og:title" content={metadata.openGraph.title} />
<meta property="og:description" content={metadata.openGraph.description} />
<meta property="og:url" content={metadata.openGraph.url} />
<meta property="og:site_name" content={metadata.openGraph.siteName} />
<meta property="og:locale" content={metadata.openGraph.locale} />
<meta property="og:type" content={metadata.openGraph.type} />
<meta property="og:image" content={metadata.openGraph.images[0].url} />
<meta property="og:image:width" content={metadata.openGraph.images[0].width?.toString()} />
<meta property="og:image:height" content={metadata.openGraph.images[0].height?.toString()} />
<meta name="twitter:card" content={metadata.twitter.card} />
<meta name="twitter:title" content={metadata.twitter.title} />
<meta name="twitter:description" content={metadata.twitter.description} />
<meta name="twitter:image" content={metadata.twitter.images?.[0]} />
{metadata.icons.icon.map((icon, index) => (
<link key={index} rel="icon" type={icon.type} sizes={icon.sizes} href={icon.url} />
))}
{metadata.icons.apple.map((icon, index) => (
<link key={index} rel="apple-touch-icon" sizes={icon.sizes} href={icon.url} />
))}
2025-02-18 22:20:33 +01:00
</head>
2025-02-13 17:28:49 +01:00
<body className={`${inter.className} bg-background text-foreground antialiased`}>
2025-02-13 23:04:40 +01:00
<Navbar />
<MouseMoveEffect />
2025-02-17 22:25:11 +01:00
<div className="pt-16 md:pt-16">{children}</div>
2025-02-13 17:28:49 +01:00
</body>
</html>
)
2025-02-18 22:20:33 +01:00
}