import api from "@/lib/api"; import { useMutation, UseMutationOptions, useQuery, } from "@tanstack/react-query"; import { GetObjectsResult, PutObjectPayload, UseBrowserObjectOptions, } from "./types"; export const useBrowseObjects = ( bucket: string, options?: UseBrowserObjectOptions ) => { return useQuery({ queryKey: ["browse", bucket, options], queryFn: () => api.get(`/browse/${bucket}`, { params: options }), }); }; export const usePutObject = ( bucket: string, options?: UseMutationOptions ) => { return useMutation({ mutationFn: async (body) => { const formData = new FormData(); if (body.file) { formData.append("file", body.file); } return api.put(`/browse/${bucket}/${body.key}`, { body: formData }); }, ...options, }); }; export const useDeleteObject = ( bucket: string, options?: UseMutationOptions ) => { return useMutation({ mutationFn: (data) => api.delete(`/browse/${bucket}/${data.key}`, { params: { recursive: data.recursive }, }), ...options, }); };