Files
stats/apps/public/src/app/layout.tsx
Carl-Gerhard Lindesvärd 95846f80e5 docs: fix types
2025-12-15 10:50:40 +01:00

56 lines
1.5 KiB
TypeScript

import { TooltipProvider } from '@/components/ui/tooltip';
import { getRootMetadata } from '@/lib/metadata';
import { cn } from '@/lib/utils';
import { RootProvider } from 'fumadocs-ui/provider/next';
import type { Metadata, Viewport } from 'next';
import { Geist, Geist_Mono } from 'next/font/google';
import './global.css';
import { OpenPanelComponent } from '@openpanel/nextjs';
const font = Geist({
subsets: ['latin'],
weight: ['400', '500', '600', '700'],
});
const mono = Geist_Mono({
subsets: ['latin'],
variable: '--font-mono',
});
export const viewport: Viewport = {
width: 'device-width',
initialScale: 1,
userScalable: true,
themeColor: [
{ media: '(prefers-color-scheme: light)', color: '#fafafa' },
{ media: '(prefers-color-scheme: dark)', color: '#171717' },
],
};
export const metadata: Metadata = getRootMetadata();
export default function Layout({ children }: { children: React.ReactNode }) {
return (
<html
lang="en"
className={cn(font.className, mono.variable)}
suppressHydrationWarning
>
<body className="flex flex-col min-h-screen bg-background">
<RootProvider>
<TooltipProvider>{children}</TooltipProvider>
</RootProvider>
{process.env.NEXT_PUBLIC_OP_CLIENT_ID && (
<OpenPanelComponent
apiUrl="/api/op"
cdnUrl="/api/op/op1.js"
clientId={process.env.NEXT_PUBLIC_OP_CLIENT_ID}
trackAttributes
trackScreenViews
trackOutgoingLinks
/>
)}
</body>
</html>
);
}