"use client";

import { useCallback, useEffect, useState } from "react";
import { createClient } from "@/lib/supabase/client";
import type { ProjectActivity } from "@/types";

export function useProjectActivity(projectId: string) {
  const [activity, setActivity] = useState<ProjectActivity[]>([]);
  const [loading, setLoading] = useState(true);
  const supabase = createClient();

  const fetchActivity = useCallback(async () => {
    const { data } = await supabase
      .from("project_activity")
      .select("*")
      .eq("project_id", projectId)
      .order("created_at", { ascending: false })
      .limit(20);

    setActivity((data || []) as ProjectActivity[]);
    setLoading(false);
  }, [projectId, supabase]);

  useEffect(() => {
    async function loadActivity() {
      await fetchActivity();
    }
    void loadActivity();
  }, [fetchActivity]);

  return {
    activity,
    loading,
    refetch: fetchActivity,
  };
}
