"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>
  );
}
