mantine-entity
Version:
A library combining Mantine, TanStack Query, and Mantine React Table for efficient entity management
24 lines (23 loc) • 949 B
JavaScript
import { useMutation, } from "@tanstack/react-query";
import { getQueryClient } from "../providers/QueryClientProvider";
export function useMutationQuery({ mutationParams, invalidateTags, options, httpDelete, httpPost, httpPut, }) {
return useMutation({
mutationFn: async (body) => {
if (mutationParams.method === "PUT")
return await httpPut(mutationParams.url, body);
if (mutationParams.method === "DELETE")
return await httpDelete(mutationParams.url);
return await httpPost(mutationParams.url, body);
},
...options,
onSuccess: (data, variables, context) => {
if (invalidateTags) {
getQueryClient.invalidateQueries({
queryKey: invalidateTags,
});
}
if (options?.onSuccess)
options?.onSuccess(data, variables, context);
},
});
}