83 lines
3.0 KiB
TypeScript
83 lines
3.0 KiB
TypeScript
import type React from "react";
|
|
import { AppSidebar } from "@/app/protected/(admin-pages)/_components/app-sidebar";
|
|
import {
|
|
Breadcrumb,
|
|
BreadcrumbItem,
|
|
BreadcrumbLink,
|
|
BreadcrumbList,
|
|
BreadcrumbPage,
|
|
BreadcrumbSeparator,
|
|
} from "@/app/_components/ui/breadcrumb";
|
|
import { Button } from "@/app/_components/ui/button";
|
|
import {
|
|
SidebarInset,
|
|
SidebarProvider,
|
|
SidebarTrigger,
|
|
} from "@/app/_components/ui/sidebar";
|
|
import {
|
|
DropdownMenu,
|
|
DropdownMenuContent,
|
|
DropdownMenuItem,
|
|
DropdownMenuTrigger,
|
|
} from "@/app/_components/ui/dropdown-menu";
|
|
import { MoreHorizontal } from "lucide-react";
|
|
import { InboxDrawer } from "@/app/_components/inbox-drawer";
|
|
import { ThemeSwitcher } from "@/app/_components/theme-switcher";
|
|
import FloatingActionSearchBar from "@/app/_components/floating-action-search-bar";
|
|
import { Separator } from "@/app/_components/ui/separator";
|
|
|
|
export default async function Layout({
|
|
children,
|
|
}: {
|
|
children: React.ReactNode;
|
|
}) {
|
|
return (
|
|
<SidebarProvider>
|
|
<AppSidebar />
|
|
<SidebarInset>
|
|
{/* Navigation bar with SidebarTrigger and Breadcrumbs */}
|
|
<nav className="border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60">
|
|
<div className="flex h-16 shrink-0 items-center justify-end border-b px-4 transition-[width,height] ease-linear group-has-[[data-collapsible=icon]]/sidebar-wrapper:h-12">
|
|
<div className="flex items-center gap-2 flex-1">
|
|
<SidebarTrigger className="" />
|
|
<Separator orientation="vertical" className="mr-2 h-4" />
|
|
<Breadcrumb>
|
|
<BreadcrumbList>
|
|
<BreadcrumbItem>
|
|
<BreadcrumbLink href="#">Sigap - v</BreadcrumbLink>
|
|
</BreadcrumbItem>
|
|
<BreadcrumbSeparator />
|
|
<BreadcrumbItem>
|
|
<BreadcrumbPage>Map</BreadcrumbPage>
|
|
</BreadcrumbItem>
|
|
</BreadcrumbList>
|
|
</Breadcrumb>
|
|
</div>
|
|
<div className="flex items-center gap-2">
|
|
<InboxDrawer showTitle={true} showAvatar={false} />
|
|
<ThemeSwitcher showTitle={true} />
|
|
<DropdownMenu>
|
|
<DropdownMenuTrigger asChild>
|
|
<Button variant="ghost" size="icon">
|
|
<MoreHorizontal className="h-5 w-5" />
|
|
<span className="sr-only">More options</span>
|
|
</Button>
|
|
</DropdownMenuTrigger>
|
|
<DropdownMenuContent align="end">
|
|
<DropdownMenuItem>Settings</DropdownMenuItem>
|
|
<DropdownMenuItem>Help</DropdownMenuItem>
|
|
<DropdownMenuItem>About</DropdownMenuItem>
|
|
</DropdownMenuContent>
|
|
</DropdownMenu>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
{/* Header with other controls */}
|
|
<FloatingActionSearchBar />
|
|
{children}
|
|
</SidebarInset>
|
|
</SidebarProvider>
|
|
);
|
|
}
|