import { FeatureFlagService } from '@/lib/feature/FeatureFlagService'; import { initializeGlobalErrorHandling } from '@/lib/infrastructure/GlobalErrorHandler'; import { initializeApiLogger } from '@/lib/infrastructure/ApiRequestLogger'; import { Metadata, Viewport } from 'next'; import React from 'react'; import './globals.css'; import { AppWrapper } from '@/ui/AppWrapper'; import { Header } from '@/ui/Header'; import { HeaderContent } from '@/ui/HeaderContent'; import { MainContent } from '@/ui/MainContent'; export const dynamic = 'force-dynamic'; export const viewport: Viewport = { width: 'device-width', initialScale: 1, maximumScale: 1, userScalable: false, viewportFit: 'cover', }; export const metadata: Metadata = { title: 'GridPilot - SimRacing Platform', description: 'The dedicated home for serious sim racing leagues. Automatic results, standings, team racing, and professional race control.', 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.', }, icons: { icon: '/favicon.svg', }, }; export default async function RootLayout({ children, }: { children: React.ReactNode; }) { // Initialize debug tools in development if (process.env.NODE_ENV === 'development') { try { initializeGlobalErrorHandling({ showDevOverlay: true, verboseLogging: true, captureEnhancedStacks: true, }); initializeApiLogger({ logToConsole: true, logBodies: true, logResponses: true, }); } catch (error) { console.warn('Failed to initialize debug tools:', error); } } // Initialize feature flag service from API const featureService = await FeatureFlagService.fromAPI(); const enabledFlags = featureService.getEnabledFlags(); return (