All files / src/features/Products/Invoices/modals ResendInvoiceModal.tsx

100% Statements 6/6
100% Branches 0/0
100% Functions 2/2
100% Lines 6/6

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 66                                  1x   6x 6x 6x         6x                                 1x                                            
import useNiceModal from "@common/Modal/ModalFactory/hooks/useNiceModal";
import NiceModal from "@ebay/nice-modal-react";
import {
  RESEND_INVOICE_CONFIRMATION_LABEL,
  RESEND_INVOICE_DESCRIPTION_PREFIX,
  RESEND_INVOICE_TITLE,
} from "@features/Campaigns/CampaignDetails/constants";
import GivePopup from "@shared/Popup/GivePopup";
import { PopupTypeProps } from "@shared/Popup/GivePopupTypes";
import { useCustomThemeV2 } from "@theme/hooks/useCustomThemeV2";
import { useResendInvoice } from "../useResendInvoice";
 
type Props = {
  productId: string;
  customerEmail: string;
};
 
const ResendInvoiceModal = NiceModal.create(
  ({ customerEmail, productId }: Props) => {
    const { open, onClose } = useNiceModal();
    const { isMobileView } = useCustomThemeV2();
    const { mutateAsync, isLoading } = useResendInvoice({
      productId,
      onSuccessCb: onClose,
    });
 
    return (
      <GivePopup
        open={open}
        onClose={onClose}
        type={"resend-invoice" as PopupTypeProps}
        title={RESEND_INVOICE_TITLE}
        description={`${RESEND_INVOICE_DESCRIPTION_PREFIX} ${customerEmail}?`}
        isMobile={isMobileView}
        buttons={[
          {
            label: "Cancel",
            onClick: onClose,
            variant: "ghost",
          },
          {
            label: RESEND_INVOICE_CONFIRMATION_LABEL,
            onClick: async () => {
              await mutateAsync({});
            },
            disabled: isLoading,
            variant: "filled",
            submitType: "submit",
            color: "primary",
          },
        ]}
        sx={{
          "& .MuiPaper-root": {
            height: "fit-content",
          },
          "& .MuiDialogTitle-root+.MuiDialogContent-root": {
            paddingTop: "0 !important",
          },
        }}
      />
    );
  },
);
 
export default ResendInvoiceModal;