1cf9fd9d8c
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
30 lines
1.3 KiB
TypeScript
30 lines
1.3 KiB
TypeScript
import { AppHeader } from "@/components/layout/app-header";
|
||
import { AppSidebar } from "@/components/layout/app-sidebar";
|
||
import { BottomNav } from "@/components/layout/bottom-nav";
|
||
import { QuickAddProvider } from "@/components/layout/quick-add";
|
||
import { SidebarInset, SidebarProvider } from "@/components/ui/sidebar";
|
||
import { MOCK_SESSION_USER } from "@/features/auth/mock";
|
||
import { MOCK_HOUSEHOLDS } from "@/features/households/mock";
|
||
import { APP_VERSION } from "@/lib/version";
|
||
|
||
/**
|
||
* Oturum gerektiren alan: yan menü (masaüstü), üst bar, alt menü (mobil), hızlı ekle.
|
||
* FAZ 3: `const session = await requireSession()` — oturum yoksa /login.
|
||
*/
|
||
export default function AppLayout({ children }: { children: React.ReactNode }) {
|
||
const user = MOCK_SESSION_USER;
|
||
return (
|
||
<SidebarProvider>
|
||
<QuickAddProvider>
|
||
<AppSidebar isAdmin={user.role === "admin"} version={APP_VERSION} />
|
||
<SidebarInset>
|
||
<AppHeader user={user} households={MOCK_HOUSEHOLDS} version={APP_VERSION} />
|
||
{/* Mobilde alt menü yüksekliği kadar boşluk */}
|
||
<div className="flex flex-1 flex-col gap-4 p-4 pb-24 md:p-6 md:pb-6">{children}</div>
|
||
</SidebarInset>
|
||
<BottomNav />
|
||
</QuickAddProvider>
|
||
</SidebarProvider>
|
||
);
|
||
}
|