import type { Metadata } from "next";
import { Poppins } from "next/font/google";
import { Toaster } from "@/components/ui/sonner";
import { AppProvider } from "@/context/AppContext";
import { ImageModalProvider } from "@/context/ImageModalContext";
import { GlobalImageModal } from "@/components/layout/GlobalImageModal";
import { ThemeProvider } from "@/components/theme-provider";
import { ProgressBar } from "@/components/ProgressBar";
import "../globals.css";
import { TooltipProvider } from "@/components/ui/tooltip";

const poppins = Poppins({
  variable: "--font-poppins",
  subsets: ["latin"],
  weight: ["300", "400", "500", "600", "700"],
});

export const metadata: Metadata = {
  title: "Admin Panel | Navigate Business",
  description: "Admin panel for Navigate Business",
};

function AdminRootContent({ children }: { children: React.ReactNode }) {
  return (
    <>
      <ProgressBar />
      <TooltipProvider>{children}</TooltipProvider>
      <Toaster position="top-right" />
      <GlobalImageModal />
    </>
  );
}

export default function AdminLayout({
  children,
}: Readonly<{
  children: React.ReactNode;
}>) {
  return (
    <html
      lang="en"
      className={`${poppins.variable} h-full antialiased`}
      suppressHydrationWarning
    >
      <body className="min-h-full flex flex-col font-sans">
        <ThemeProvider>
          <AppProvider>
            <ImageModalProvider>
              <AdminRootContent>{children}</AdminRootContent>
            </ImageModalProvider>
          </AppProvider>
        </ThemeProvider>
      </body>
    </html>
  );
}
