This commit is contained in:
hamid zarghami
2026-03-14 15:43:31 +03:30
parent 67b5944ddb
commit b71d062bfe
3 changed files with 61 additions and 0 deletions
@@ -0,0 +1,14 @@
import { useMutation } from "@tanstack/react-query";
import * as api from "../service/UploaderService";
export const useSingleUpload = () => {
return useMutation({
mutationFn: api.singleUpload,
});
};
export const useMultipleUpload = () => {
return useMutation({
mutationFn: api.multipleUpload,
});
};
@@ -0,0 +1,31 @@
import axios from "@/config/axios";
import type {
SingleUploadResponse,
MultipleUploadResponse,
} from "../types/Types";
export const singleUpload = async (
file: File
): Promise<SingleUploadResponse> => {
const formData = new FormData();
formData.append("file", file);
const { data } = await axios.post<SingleUploadResponse>(
`/admin/single-file`,
formData
);
return data;
};
export const multipleUpload = async (
files: File[]
): Promise<MultipleUploadResponse> => {
const formData = new FormData();
files.forEach((file) => {
formData.append("files", file);
});
const { data } = await axios.post<MultipleUploadResponse>(
`/admin/multi-file`,
formData
);
return data;
};
+16
View File
@@ -0,0 +1,16 @@
import type { BaseResponse } from "@/shared/types/SharedTypes";
export type UploadedFile = {
key: string;
url: string;
bucket: string;
};
export type SingleUploadResponseData = {
file: UploadedFile;
url: string;
};
export type SingleUploadResponse = BaseResponse<SingleUploadResponseData>;
export type MultipleUploadResponse = BaseResponse<SingleUploadResponseData[]>;