46 lines
1.4 KiB
TypeScript
46 lines
1.4 KiB
TypeScript
import type { Metadata } from 'next'
|
|
import localFont from 'next/font/local'
|
|
import './globals.css'
|
|
import { AuthProvider } from '@/components/AuthProvider'
|
|
|
|
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>
|
|
{children}
|
|
</AuthProvider>
|
|
</body>
|
|
</html>
|
|
)
|
|
}
|