"use client";

import { useEffect } from "react";
import { usePathname, useRouter } from "next/navigation";

import { AdminSidebar } from "@/components/layout/admin-sidebar";
import { useAuthStore } from "@/stores/auth-store";

export default function AdminLayout({ children }: { children: React.ReactNode }) {
  const { isAdmin, loadFromStorage } = useAuthStore();
  const router = useRouter();
  const pathname = usePathname();

  useEffect(() => {
    loadFromStorage();
  }, [loadFromStorage]);

  useEffect(() => {
    const role = typeof window !== "undefined" ? localStorage.getItem("novalife_auth_role") : null;
    if (role !== "admin") {
      router.push("/admin/login");
    }
  }, [pathname, router]);

  if (!isAdmin && typeof window !== "undefined" && localStorage.getItem("novalife_auth_role") !== "admin") {
    return null;
  }

  return (
    <div className="flex h-screen overflow-hidden bg-gray-50">
      <AdminSidebar />
      <main className="flex flex-1 flex-col overflow-hidden">
        <div className="flex-1 overflow-y-auto">
          {children}
        </div>
      </main>
    </div>
  );
}
