import { isInvalid } from "@/components/TableBuilder/util/data";
import { socket } from "@/socket";
import { useEffect } from "react";

type Props = {
  list: ProjectsData;
  setList: React.Dispatch<React.SetStateAction<DownloadsLinks>>;
  fetchData: () => void;
};

export const useDownloadsSocket = ({ list, setList, fetchData }: Props) => {
  const onAddDownloadLink = (downloadLink: DownloadLink) => {
    // setList((prev) => {
    //   const copy = prev === "empty" ? [] : (prev as DownloadLink[]);

    //   return [downloadLink, ...copy];
    // });

    fetchData();
  };

  const onRemoveDownloadLink = ({ id }: DownloadLink) => {
    // setList((prev) => {
    //   const copy = prev === "empty" ? [] : (prev as DownloadLink[]);

    //   const index = copy.findIndex((e) => e.id === id);

    //   if (index === -1) return copy;

    //   return [...copy.slice(0, index), ...copy.slice(index + 1)];
    // });

    fetchData();
  };

  useEffect(() => {

    socket.on("add-download-link", onAddDownloadLink);
    socket.on("remove-download-link", onRemoveDownloadLink);

    return () => {
      socket.off("add-download-link", onAddDownloadLink);
      socket.off("remove-download-link", onRemoveDownloadLink);
    };
  }, []);
};
