All files / src/features/Products/Invoices useResendInvoice.tsx

100% Statements 9/9
100% Branches 0/0
100% Functions 3/3
100% Lines 9/9

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                    1x 12x 12x 12x   2x                   2x 2x 2x         12x          
import { QKEY_LIST_INVOICES } from "@constants/queryKeys";
import { useGetCurrentMerchantId } from "@hooks/common";
import { customInstance } from "@services/api";
import { useMutation, useQueryClient } from "react-query";
 
type Props = {
  productId: string;
  onSuccessCb: () => void;
};
 
export const useResendInvoice = ({ productId, onSuccessCb }: Props) => {
  const { merchantId } = useGetCurrentMerchantId();
  const queryClient = useQueryClient();
  const { mutateAsync, isLoading } = useMutation(
    ({ notes }: { notes?: string }) => {
      return customInstance({
        url: `/merchants/${merchantId}/invoices/${productId}/resend`,
        data: {
          notes,
        },
        method: "POST",
      });
    },
    {
      onSuccess: () => {
        queryClient.invalidateQueries(QKEY_LIST_INVOICES);
        queryClient.invalidateQueries("get-campaign");
        onSuccessCb();
      },
    },
  );
 
  return {
    mutateAsync,
    isLoading,
  };
};