import type { ReactNode } from "react";

import { AdminFormFeedback } from "@/components/admin/common/AdminFormFeedback";
import { AdminBottomNav } from "@/components/admin/layout/AdminBottomNav";
import { AdminCommandPalette } from "@/components/admin/layout/AdminCommandPalette";
import { AdminMobileSidebar } from "@/components/admin/layout/AdminMobileSidebar";
import { SidebarServer } from "@/components/admin/layout/SidebarServer";
import { Topbar } from "@/components/admin/layout/Topbar";
import type { SessionUser } from "@/lib/session";

export function AdminShell({
  children,
  user,
}: {
  children: ReactNode;
  user: SessionUser;
}) {
  return (
    <div className="admin-shell">
      <SidebarServer user={user} />
      <AdminMobileSidebar user={user} />
      <div className="admin-main-column pb-20 lg:pb-0">
        <Topbar user={user} />
        <AdminFormFeedback />
        {children}
      </div>
      <AdminBottomNav />
      <AdminCommandPalette />
    </div>
  );
}
