80 lines
2.5 KiB
TypeScript
80 lines
2.5 KiB
TypeScript
import type { Metadata } from 'next';
|
|
import './globals.css';
|
|
import { getAppMode } from '@/lib/mode';
|
|
import { AlphaNav } from '@/components/alpha/AlphaNav';
|
|
import AlphaBanner from '@/components/alpha/AlphaBanner';
|
|
import AlphaFooter from '@/components/alpha/AlphaFooter';
|
|
|
|
export const metadata: Metadata = {
|
|
title: 'GridPilot - iRacing League Racing Platform',
|
|
description: 'The dedicated home for serious iRacing leagues. Automatic results, standings, team racing, and professional race control.',
|
|
viewport: {
|
|
width: 'device-width',
|
|
initialScale: 1,
|
|
maximumScale: 1,
|
|
userScalable: false,
|
|
viewportFit: 'cover',
|
|
},
|
|
themeColor: '#0a0a0a',
|
|
appleWebApp: {
|
|
capable: true,
|
|
statusBarStyle: 'black-translucent',
|
|
},
|
|
openGraph: {
|
|
title: 'GridPilot - iRacing League Racing Platform',
|
|
description: 'Structure over chaos. The professional platform for iRacing league racing.',
|
|
type: 'website',
|
|
},
|
|
twitter: {
|
|
card: 'summary_large_image',
|
|
title: 'GridPilot - iRacing League Racing Platform',
|
|
description: 'Structure over chaos. The professional platform for iRacing league racing.',
|
|
},
|
|
};
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: {
|
|
children: React.ReactNode;
|
|
}) {
|
|
const mode = getAppMode();
|
|
|
|
if (mode === 'alpha') {
|
|
return (
|
|
<html lang="en" className="scroll-smooth overflow-x-hidden">
|
|
<head>
|
|
<meta name="mobile-web-app-capable" content="yes" />
|
|
</head>
|
|
<body className="antialiased overflow-x-hidden min-h-screen bg-deep-graphite flex flex-col">
|
|
<AlphaNav />
|
|
<AlphaBanner />
|
|
<main className="flex-1 max-w-7xl mx-auto px-6 py-8 w-full">
|
|
{children}
|
|
</main>
|
|
<AlphaFooter />
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|
|
|
|
return (
|
|
<html lang="en" className="scroll-smooth overflow-x-hidden">
|
|
<head>
|
|
<meta name="mobile-web-app-capable" content="yes" />
|
|
</head>
|
|
<body className="antialiased overflow-x-hidden">
|
|
<header className="fixed top-0 left-0 right-0 z-50 bg-deep-graphite/80 backdrop-blur-sm border-b border-white/5">
|
|
<div className="max-w-7xl mx-auto px-6 py-4">
|
|
<div className="flex items-baseline space-x-3">
|
|
<h1 className="text-2xl font-semibold text-white">GridPilot</h1>
|
|
<p className="text-sm text-gray-400 font-light">Making league racing less chaotic</p>
|
|
</div>
|
|
</div>
|
|
</header>
|
|
<div className="pt-16">
|
|
{children}
|
|
</div>
|
|
</body>
|
|
</html>
|
|
);
|
|
} |