import { redirect } from "next/navigation";
import { auth } from "@/lib/auth";
import { Sidebar } from "@/components/layout/Sidebar";
import { TopBar } from "@/components/layout/TopBar";
import { BottomNav } from "@/components/layout/BottomNav";
import { GlobalDialogs } from "@/components/layout/GlobalDialogs";
import { CurrencyProvider } from "@/components/layout/CurrencyProvider";
import { Providers } from "@/components/Providers";

export default async function DashboardLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  const session = await auth();
  if (!session?.user) redirect("/login");

  return (
    <Providers session={session}>
      <CurrencyProvider>
        <div className="flex h-screen bg-slate-950 text-slate-100 overflow-hidden">
          <Sidebar />
          <div className="flex flex-col flex-1 min-w-0">
            <TopBar />
            <main className="flex-1 overflow-y-auto p-4 md:p-6 pb-24 md:pb-6">{children}</main>
          </div>
        </div>
        <BottomNav />
        <GlobalDialogs />
      </CurrencyProvider>
    </Providers>
  );
}
