"use client"; import { useEffect, useState } from "react"; import { Menu } from "lucide-react"; import { Sidebar } from "@/components/layout/Sidebar"; import { UtilityControls } from "@/components/layout/UtilityControls"; import { useI18n } from "@/lib/i18n/useI18n"; export function AppShell({ children, initialTheme, }: { children: React.ReactNode; initialTheme?: "dark" | "light"; }) { const { t } = useI18n(); const [drawerOpen, setDrawerOpen] = useState(false); useEffect(() => { if (!drawerOpen) return; const onKey = (event: KeyboardEvent) => { if (event.key === "Escape") setDrawerOpen(false); }; window.addEventListener("keydown", onKey); document.body.style.overflow = "hidden"; return () => { window.removeEventListener("keydown", onKey); document.body.style.overflow = ""; }; }, [drawerOpen]); return (
{t("sidebar.productTitle")}
{children}
{drawerOpen && (
)}
); }