import { ServerRequest } from "@/lib/actions";
import { ProjectFilesTree } from "@/models/projectFilesTree";
import deleteSubdomainFiles from "@/services/files/deleteSubdomainFiles";
import { Dispatch, SetStateAction } from "react";
import { toast } from "sonner";

type DeleteItemProps = {
  item: ProjectFilesTree;
  sendSignal: Dispatch<SetStateAction<boolean>>;
  dict: Dictionary;
};
export default async function DeleteItem({
  item,
  sendSignal,
  dict,
}: DeleteItemProps) {
  const promise = new Promise(async (resolve, reject) => {
    const formData = new FormData();
    formData.append("files", JSON.stringify([item.path]));

    const result = await ServerRequest(deleteSubdomainFiles(formData));

    if (!result.operation) {
      return reject(result);
    }

    sendSignal((prev) => !prev);
    return resolve(result);
  });

  toast.promise(promise, {
    loading: dict.alerts.delete_file.loading,
    success: ({ message }: any) => message,
    error: ({ message }: any) => message,
  });
}
