Skip to content

G. useUploadFile

hook/useUploadFile
import useAxiosAuth from "@/hook/useAxiosAuth";
import { BaseResponseSuccess } from "@/lib/axiosClient";

interface FileResponse extends BaseResponseSuccess {
  data: {
    file_url: string;
    file_name: string;
    file_size: number;
  };
}
const useUploadFile = () => {
  const axiosAuthClient = useAxiosAuth();

  const uploadSingle = async (file: any): Promise<FileResponse> => {
    const form = new FormData();
    form.append("file", file);

    return axiosAuthClient
      .post("/upload/file", form, {
        headers: {
          "Content-Type": "multipart/form-data",
        },
      })
      .then((res) => res.data);
  };

  const deleteFile = async (file_name: string) => {
    return axiosAuthClient.delete(`upload/file/delete/${file_name}`);
  };

  return { uploadSingle, deleteFile };
};

export default useUploadFile;