import type React from "react";
import type { Metadata } from "next";
import { AdminSidebarServer } from "@/roles/admin/components/admin-sidebar-server";
import { AdminHeaderServer } from "@/roles/admin/components/admin-header-server";
import { AdminMobileNav } from "@/roles/admin/components/admin-mobile-nav";
import { AdminAuthProvider } from "@/roles/admin/components/admin-auth-provider";

export const metadata: Metadata = {
  title: "Admin | Ameera Holidays",
  description: "Ameera Holidays Platform Administration",
  robots: {
    index: false,
    follow: false,
  },
};

// Authentication is already handled by middleware, so no need to re-validate here
// This prevents the layout from re-executing on every navigation
export default function AdminLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    <div className="flex min-h-screen bg-background">
      {/* Server-rendered sidebar - static, never re-renders on navigation */}
      <AdminSidebarServer />

      {/* Mobile navigation - client component only for mobile toggle */}
      <AdminMobileNav />

      {/* Main content area */}
      <div className="flex flex-1 flex-col md:ml-64">
        {/* Server-rendered header - static, never re-renders on navigation */}
        <AdminHeaderServer />

        <main className="flex-1 bg-background overflow-hidden">
          <AdminAuthProvider>
            <div className="container mx-auto p-4 md:p-6 lg:p-8 max-w-full overflow-x-auto">
              {children}
            </div>
          </AdminAuthProvider>
        </main>
      </div>
    </div>
  );
}
