'use client'; import { useEffect, useState } from 'react'; import { useSidebarStore } from '@/lib/stores/sidebar-store'; import { installErrorBuffer } from '@/lib/error-buffer'; import { Header } from '@/components/layout/header'; import { Sidebar } from '@/components/layout/sidebar'; import { ReleaseNoticeHost } from '@/components/release-notice/release-notice-host'; import { ReminderNotifier } from '@/components/reminders/reminder-notifier'; export function AppShell({ children }: { children: React.ReactNode }) { const isCollapsed = useSidebarStore((s) => s.isCollapsed); const [mounted, setMounted] = useState(false); useEffect(() => { setMounted(true); }, []); // Fehlerpuffer fuer den Fehler-melden-Knopf (quick-260914-m97): einmal je // Seitenladung, SSR-sicher, idempotent (StrictMode-Doppeleffekt unschaedlich). useEffect(() => { installErrorBuffer(); }, []); // Desktop: sidebar pushes content via margin-left // Mobile: sidebar overlays, no margin needed (handled by app-shell-main class in globals.css) const sidebarWidth = isCollapsed ? 'var(--sidebar-width-collapsed)' : 'var(--sidebar-width)'; return (