Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | 85x 663x 663x 4x 6x 663x 1x 1x 663x 7x 5x 5x 5x 2x 2x 2x 7x 663x 7x 663x | import { customInstance } from "@services/api";
import { useMutation, useQueryClient } from "react-query";
import { AxiosError } from "axios";
import { showMessage } from "@common/Toast";
type TMutation = {
url?: string;
onSuccess?: (res: any) => void;
onError?: (error: any) => void;
onSettled?: () => void;
refetchQuerieKeys?: string[];
invalidateQuerieKeys?: string[];
};
export const useDeleteMutation = ({
url,
onSuccess,
onError,
onSettled,
refetchQuerieKeys,
invalidateQuerieKeys,
}: TMutation) => {
const queryClient = useQueryClient();
const refetchQueries = () => {
refetchQuerieKeys
?.filter(Boolean)
.map((key) => queryClient.invalidateQueries(key));
};
const invalidateQueries = () => {
invalidateQuerieKeys
?.filter(Boolean)
?.map((key) => queryClient.invalidateQueries(key));
};
const deleteMutation = useMutation(
async () => {
return customInstance({
url: url,
method: "DELETE",
});
},
{
onSuccess: (res) => {
refetchQuerieKeys?.length && refetchQueries();
invalidateQuerieKeys?.length && invalidateQueries();
onSuccess && onSuccess(res);
},
onError: (error: unknown) => {
const axiosError = error as AxiosError;
showMessage("Error", axiosError.message, true);
onError && onError(axiosError);
},
onSettled: () => {
onSettled && onSettled();
},
},
);
const handleDelete = () => {
deleteMutation.mutate();
};
return { handleDelete, mutation: deleteMutation };
};
|