import { AdminShell } from "@/components/admin-shell";
import { ToastProvider } from "@/components/toast";
import { ConfirmProvider } from "@/components/modal";
import { AdminGate } from "@/components/admin-gate";
import { AppBridgeInit } from "@/components/app-bridge-init";

export default function AdminLayout({ children }: { children: React.ReactNode }) {
  return (
    <ToastProvider>
      <ConfirmProvider>
        {/* Boot App Bridge (session tokens) from ?host= when embedded. */}
        <AppBridgeInit />
        {/* Blocks direct (non-embedded) access to the merchant admin. */}
        <AdminGate>
          <AdminShell>{children}</AdminShell>
        </AdminGate>
      </ConfirmProvider>
    </ToastProvider>
  );
}
