"use client";

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

export function AuthCheck({ children }: { children: React.ReactNode }) {
  const { data: session, status } = useSession();
  const pathname = usePathname();
  const router = useRouter();

  useEffect(() => {
    // Only redirect if we're certain the user is not authenticated
    // and we're not already on the signin page
    if (status === "unauthenticated" && pathname !== "/signin") {
      router.replace("/signin");
    }
  }, [status, pathname, router]);

  // During loading, show the children to prevent flashing
  // This works because server-side session check will handle protection
  if (status === "loading") {
    return <>{children}</>;
  }

  // If we're on the signin page, or if we're authenticated, show the children
  if (pathname === "/signin" || status === "authenticated") {
    return <>{children}</>;
  }

  // Otherwise, render nothing while redirecting
  return null;
} 