"use client";

import type { ReactNode } from "react";
import { Layout } from "antd";

import { AdminHeader } from "./AdminHeader";
import { AdminSidebar } from "./AdminSidebar";
import { PageContainer } from "./PageContainer";

const { Content } = Layout;

type AdminLayoutProps = {
  children: ReactNode;
  /** Optional right-side header actions (inject from a parent when needed). */
  headerActions?: ReactNode;
};

export function AdminLayout({ children, headerActions }: AdminLayoutProps) {
  return (
    <Layout className="admin-shell-root min-h-screen !bg-transparent">
      <AdminSidebar />
      <Layout className="admin-shell-main admin-shell-canvas !min-h-screen !bg-transparent">
        <AdminHeader actions={headerActions} />
        <Content className="admin-shell-content !m-0 !min-h-[calc(100vh-4.25rem)] !border-0 !bg-transparent !p-5 !pb-10 md:!px-7 md:!pb-12 md:!pt-6">
          <PageContainer>{children}</PageContainer>
        </Content>
      </Layout>
    </Layout>
  );
}
