rtube-online/app/layout.tsx

48 lines
1.4 KiB
TypeScript

import type { Metadata } from 'next'
import localFont from 'next/font/local'
import './globals.css'
import { AuthProvider } from '@/components/AuthProvider'
import { Header } from '@/components/Header'
const geistSans = localFont({
src: './fonts/GeistVF.woff',
variable: '--font-geist-sans',
weight: '100 900',
})
const geistMono = localFont({
src: './fonts/GeistMonoVF.woff',
variable: '--font-geist-mono',
weight: '100 900',
})
export const metadata: Metadata = {
title: 'rTube - Community Video Hosting, Storage & Streaming',
description: 'Who needs YouTube, when you have (ou)rTube! Self-hosted video recording, live streaming, and storage for rSpace communities.',
icons: {
icon: "data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🎬</text></svg>",
},
openGraph: {
title: 'rTube - Community Video Hosting, Storage & Streaming',
description: 'Who needs YouTube, when you have (ou)rTube! Self-hosted video recording, live streaming, and storage for rSpace communities.',
type: 'website',
url: 'https://rtube.online',
},
}
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode
}>) {
return (
<html lang="en">
<body className={`${geistSans.variable} ${geistMono.variable} antialiased`}>
<AuthProvider>
<Header current="tube" />
{children}
</AuthProvider>
</body>
</html>
)
}