import { AxiosError } from "axios"; import { useMutation, type UseMutationOptions } from "@tanstack/react-query"; import { useAlertStore } from "./use-alert-store"; export const useMutationWrapper = < TData = unknown, TError = unknown, TVariables = void, TContext = unknown, >( mutationOptions: UseMutationOptions, ) => { const alert = useAlertStore((state) => state.setMessage); return useMutation({ ...mutationOptions, onError: (error) => { let errorMessage = ""; if (error instanceof AxiosError) { if (error.response?.status) errorMessage += `status: ${error.response.status}\n`; if (error.response?.data?.message) errorMessage += `${error.response.data.message}\n`; if (error.response?.data?.errors[0]?.message) errorMessage += `${error.response.data.errors[0].message}\n`; } alert(`[Error] ${errorMessage}`); }, }); };