import { Suspense } from "react"; import { HeaderWrapper } from "@/components/header-wrapper"; import { Sidebar } from "@/components/sidebar"; import { ProvidersWrapper } from "@/components/providers-wrapper"; import { auth } from "@/auth"; import { headers } from "next/headers"; import { detectUserLanguage, parseAcceptLanguage } from "@/lib/i18n/detect-user-language"; import { loadTranslations } from "@/lib/i18n/load-translations"; import { getAISettings } from "@/app/actions/ai-settings"; import { AIChat } from "@/components/ai-chat"; export default async function MainLayout({ children, }: Readonly<{ children: React.ReactNode; }>) { // Read browser language hint from Accept-Language header const headersList = await headers(); const browserLang = parseAcceptLanguage(headersList.get("accept-language")); // Run auth + language detection + translation loading in parallel const [session, initialLanguage] = await Promise.all([ auth(), detectUserLanguage(browserLang), ]); // Load initial translations server-side to prevent hydration mismatch const initialTranslations = await loadTranslations(initialLanguage); // Load AI settings to conditionally render AI features const aiSettings = session?.user?.id ? await getAISettings(session.user.id) : null; const showAIAssistant = aiSettings?.paragraphRefactor !== false; return (
{/* Top Navigation - Style Keep */} {/* Main Layout */}
{/* Sidebar Navigation - Style Keep */} }> {/* Main Content Area */}
{children}
{/* AI Chat Drawer — only shown if user has Assistant IA enabled */} {showAIAssistant && }
); }