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

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

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 67 68 69 70 71 72 73 74                                  1x 4x 4x 4x   4x                                 1x                           1x                                        
import useNiceModal from "@common/Modal/ModalFactory/hooks/useNiceModal";
import NiceModal from "@ebay/nice-modal-react";
import {
  DUPLICATE_INVOICE_CONFIRMATION_LABEL,
  DUPLICATE_INVOICE_DESCRIPTION,
  DUPLICATE_INVOICE_TITLE,
} from "@features/Campaigns/CampaignDetails/constants";
import { PUBLIC_FORM_PATHS } from "@routes/paths";
import GivePopup from "@shared/Popup/GivePopup";
import { PopupTypeProps } from "@shared/Popup/GivePopupTypes";
import { useCustomThemeV2 } from "@theme/hooks/useCustomThemeV2";
import { useNavigate } from "react-router-dom";
 
type Props = {
  id: string;
};
 
const DuplicateInvoiceModal = NiceModal.create(({ id }: Props) => {
  const { open, onClose } = useNiceModal();
  const { isMobileView } = useCustomThemeV2();
  const navigate = useNavigate();
 
  return (
    <GivePopup
      open={open}
      onClose={onClose}
      type={"copy" as PopupTypeProps}
      title={DUPLICATE_INVOICE_TITLE}
      description={DUPLICATE_INVOICE_DESCRIPTION}
      isMobile={isMobileView}
      buttons={[
        {
          label: "Cancel",
          onClick: onClose,
          variant: "ghost",
        },
        {
          label: DUPLICATE_INVOICE_CONFIRMATION_LABEL,
          onClick: () => {
            navigate(
              {
                pathname: `/${PUBLIC_FORM_PATHS.PAY_PRODUCT_BUILDER}/`,
                search: `type=invoice`,
              },
              {
                state: {
                  prevUrl: location.pathname,
                  formType: "invoice",
                  isEdit: false,
                  duplicateInvoiceId: id,
                },
              },
            );
            onClose();
          },
          variant: "filled",
          submitType: "submit",
          color: "primary",
        },
      ]}
      sx={{
        "& .MuiPaper-root": {
          height: "fit-content",
        },
        "& .MuiDialogTitle-root+.MuiDialogContent-root": {
          paddingTop: "0 !important",
        },
      }}
    />
  );
});
 
export default DuplicateInvoiceModal;