35 lines
1.2 KiB
TypeScript
35 lines
1.2 KiB
TypeScript
"use client";
|
|
|
|
import type { ReactNode } from "react";
|
|
|
|
import { AdminAppSidebar } from "@/components/admin/admin-sidebar";
|
|
import { ShellToolbar } from "@/components/admin/toolbar";
|
|
import { AdminBreadcrumb } from "@/components/admin/admin-breadcrumb";
|
|
import {
|
|
SidebarInset,
|
|
SidebarProvider,
|
|
SidebarTrigger,
|
|
} from "@/components/ui/sidebar";
|
|
import { Separator } from "@/components/ui/separator";
|
|
|
|
export function AdminShell({ children }: { children: ReactNode }) {
|
|
return (
|
|
<SidebarProvider defaultOpen>
|
|
<AdminAppSidebar />
|
|
<SidebarInset className="min-w-0 overflow-x-hidden max-md:overflow-x-hidden">
|
|
<header className="sticky top-0 z-30 flex h-14 shrink-0 items-center gap-3 border-b border-border bg-card/90 px-4 shadow-[0_1px_0_rgb(216_230_251_/_45%)] backdrop-blur-md">
|
|
<SidebarTrigger />
|
|
<Separator orientation="vertical" className="mr-1.5 h-4" />
|
|
<AdminBreadcrumb />
|
|
<div className="ml-auto flex shrink-0 items-center">
|
|
<ShellToolbar />
|
|
</div>
|
|
</header>
|
|
<div className="flex min-w-0 flex-1 flex-col overflow-x-hidden px-4 pt-4 pb-6 md:px-5 md:pt-4 md:pb-6">
|
|
{children}
|
|
</div>
|
|
</SidebarInset>
|
|
</SidebarProvider>
|
|
);
|
|
}
|