"use client";

import { useEffect, useState } from "react";

import { HomeDevSettings } from "@/components/home/home-dev-settings";

/**
 * Loads session client-side so the homepage can stay statically revalidated
 * without calling getSession() on every request.
 */
export function AdminHomeToolbar() {
  const [isAdmin, setIsAdmin] = useState(false);
  const devMode =
    process.env.NODE_ENV === "development" &&
    process.env.NEXT_PUBLIC_ENABLE_DEV_EDITOR === "true";

  useEffect(() => {
    let cancelled = false;
    fetch("/api/auth/session", { credentials: "include" })
      .then((r) => (r.ok ? r.json() : null))
      .then((data) => {
        if (cancelled) return;
        setIsAdmin(data?.user?.role === "admin");
      })
      .catch(() => {
        if (!cancelled) setIsAdmin(false);
      });
    return () => {
      cancelled = true;
    };
  }, []);

  return (
    <HomeDevSettings
      isAdmin={isAdmin}
      devMode={devMode && !isAdmin}
    />
  );
}
