import type { Metadata, Viewport } from 'next'; import { Geist, Geist_Mono } from 'next/font/google'; import { env } from '@/env'; import '@/app/styles.css'; import Footer from '@/components/layout/footer'; import Header from '@/components/layout/header'; import { ConvexClientProvider } from '@/components/providers'; import { generateMetadata } from '@/lib/metadata'; import { ConvexAuthNextjsServerProvider } from '@convex-dev/auth/nextjs/server'; import PlausibleProvider from 'next-plausible'; import { ThemeProvider, Toaster } from '@gib/ui'; export const metadata: Metadata = generateMetadata(); export const viewport: Viewport = { themeColor: [ { media: '(prefers-color-scheme: light)', color: 'white' }, { media: '(prefers-color-scheme: dark)', color: 'black' }, ], }; const geistSans = Geist({ subsets: ['latin'], variable: '--font-geist-sans', }); const geistMono = Geist_Mono({ subsets: ['latin'], variable: '--font-geist-mono', }); const RootLayout = ({ children, }: Readonly<{ children: React.ReactNode; }>) => { const app = (
{children}
); return ( {/* Plausible loads its per-site script through the same-origin proxy in next.config.js; without that config it stays off. */} {env.NEXT_PUBLIC_PLAUSIBLE_SRC ? ( {app} ) : ( app )} ); }; export default RootLayout;