import ModalShell from "./ModalShell"; import { Button, Col, Row, Avatar } from "antd"; import DotLoading from "../Loading/DotLoading"; import { Link, Navigate } from "react-router-dom"; import FailedTransactionIcon from "../Icon/FailedTransactionIcon"; import { IConfirmationModalProps } from "../types"; import { CloseOutlined } from "@ant-design/icons"; import { usePaymentListenerQuery } from "../../services/checkout-service"; const ConfirmationModal = ({ show = false, onCancel, title = "", initiateAgain, transaction, redirect, successMessage, }: IConfirmationModalProps) => { const { data, isFetching, isLoading } = usePaymentListenerQuery( transaction.reference ); /* if ( data?.data?.status === "success" && data?.data?.excessAmountReceivedInCrypto > 0 ) return ( );*/ if (data?.data?.status === "success") return ( ); if ( data?.data?.status === "failed" && data?.data?.failureReason === "An amount lower than expected was received" ) return ( ); return (
{!isLoading || isFetching ? ( <>
{transaction?.imageFilePath && ( )}

{transaction.email}

{transaction.expectedAmountInCrypto} {transaction.crypto}

Transaction fee : {transaction.feeInCrypto}{" "} {transaction.crypto}


) : null} {!isLoading && data?.data?.status === "failed" ? (

No payment received

No payment was received from you from this transaction

) : isLoading || isFetching ? ( <>

Confirming payment of

{transaction.expectedAmountWithFeeInCrypto} {transaction.crypto}

Your transaction is processing, please hold on for payment confirmation.

{" "} ) : (

Payment was unsuccessful.

Something Went Wrong

)}
); }; export default ConfirmationModal;