import { useState } from "react"; import { useDispatch } from "react-redux"; import usersService from "../../../services/UsersService"; import { tableReload } from "../../../store/TableReloads"; import InputCom from "../../Helpers/Inputs/InputCom"; import ModalCom from "../../Helpers/ModalCom"; import LoadingSpinner from "../../Spinners/LoadingSpinner"; function ConfirmNairaWithdraw({ payment, wallet, action, situation, state, setShowNairaWithdraw, }) { const apiURL = new usersService(); const dispatch = useDispatch(); let [requestStatus, setRequestStatus] = useState({ message: "", loading: false, status: false, }); const [completeNairaWithdraw, setShowCompleteNairaWithdraw] = useState({ show: false, load: false, state: {}, }); // DETERMINES WHEN CONFIRM NAIRA WITHDRAWAL POPS UP //FUNCTION TO HANDLE SUBMIT const handleSubmit = () => { setRequestStatus({ message: "", loading: true, status: false }); setShowCompleteNairaWithdraw({ load: true }); let reqData = { amount: Number(state.amount * 100), Fee: Number(state.fee), wallet_uid: wallet.wallet_uid, }; if (state?.choice === "prev") { reqData.recipient_uid = state.details?.recipient_uid; reqData.mode = 100; } if (state?.choice === "new") { reqData.account_no = state?.details?.accountNumber; reqData.account_type = Number(state?.details?.accountType); reqData.bank_uid = state?.details?.bank_uid; reqData.country = state?.details?.country; reqData.state = state?.details?.state; reqData.city = state?.details?.city; reqData.mode = 500; } apiURL .sendMoney(reqData) .then((res) => { if (res.data.internal_return < 0) { // if (res.data?.status_message?.toLowerCase().includes("limit")) { // setRequestStatus({ // message: , // loading: false, // status: false, // }); // } return setTimeout(() => { setRequestStatus({ message: "", loading: false, status: false, }); setShowCompleteNairaWithdraw({ show: true, load: false, state: res.data, }); }, 5000); } setTimeout(() => { setRequestStatus({ message: "", loading: false, status: false, }); setShowCompleteNairaWithdraw({ show: true, load: false, state: res.data, }); }, 5000); dispatch(tableReload({ type: "WALLETTABLE" })); return; }) .catch((error) => { setRequestStatus({ message: "Opps! something went wrong! Try Again", loading: false, status: false, }); }); }; return (

{completeNairaWithdraw.load ? ( "Confirming..." ) : ( <> {" "} {completeNairaWithdraw.show ? completeNairaWithdraw?.state?.internal_return >= 0 ? "Transfer Success" : "Transfer Error" : `Withdraw from ${wallet.description} Wallet : ${ wallet.symbol }${(wallet.amount * 0.01).toFixed(2)}`} )}


{completeNairaWithdraw.load ? (
) : completeNairaWithdraw.show ? (
{completeNairaWithdraw.state?.sendmoney_message ?.toLowerCase() ?.includes("completed") ? ( ) : ( )}
{completeNairaWithdraw.state?.internal_return >= 0 ? ( <>

{completeNairaWithdraw.state?.sendmoney_message || ""}

Amount( {completeNairaWithdraw.state ?.terminatingcountrycode || ""} )

{Number( completeNairaWithdraw.state?.TerminatingAmount * 0.01 ).toLocaleString() || ""}

Recipient

{completeNairaWithdraw.state?.recitient}

Confirmation Number

{completeNairaWithdraw.state?.confirmation}
{" "} ) : ( <>

{completeNairaWithdraw.state?.status_message ?.toLowerCase() .includes("not_found") ? "Wallet Error Occurred" : completeNairaWithdraw.state?.status_message ?.toLowerCase() .includes("recipient_add_error") ? "Recipient Error Occurred" : completeNairaWithdraw.state?.status_message ?.toLowerCase() .includes("limit") ? "Transfer limit Error" : completeNairaWithdraw.state?.bad_param ?.toLowerCase() .includes("balance") ? "Insufficient Balance" : "An Error Occurred"}{" "}

Message:

{completeNairaWithdraw.state?.status_message ?.toLowerCase() .includes("not_found") ? "This Wallet is not Found" : completeNairaWithdraw.state?.status_message ?.toLowerCase() .includes("recipient_add_error") ? "No Recipient Found" : completeNairaWithdraw.state?.status_message ?.toLowerCase() .includes("limit") ? "The transfer limit has been exceeded" : completeNairaWithdraw.state?.bad_param ?.toLowerCase() .includes("balance") ? "Insufficient Balance for Transaction" : "Could not perform transaction"}
)}
) : (

{/* Confirm Withdraw to Account */}

{/* AMOUNT */}
{state?.choice === "prev" && ( <> {/* RECIPIENT ACC: */}
)} {state?.choice === "new" && ( <> {/* RECIPIENT ACC: */}
)} {/* PROCESSING FEE: */}
{/* TOTAL */}
{/* COMMENT/NOTE */}
)} {!completeNairaWithdraw.load && ( <> {" "}

{requestStatus.message && requestStatus.message}

{!completeNairaWithdraw.show && ( )}
)}
); } export default ConfirmNairaWithdraw;