import React, { useState } from "react"; import { useSelector } from "react-redux"; import { useNavigate } from "react-router-dom"; import { toast } from "react-toastify"; import InputCom from "../Helpers/Inputs/InputCom"; import usersService from "../../services/UsersService"; import { FlutterWaveButton, closePaymentModal } from "flutterwave-react-v3"; function ConfirmAddFund({ confirmCredit, onClose, walletItem }) { let { userDetails } = useSelector((state) => state.userDetails); // TO GET LOGGEDIN USER DETAILS let [pageLoading, setPageLoading] = useState(true); let [requestStatus, setRequestStatus] = useState({ message: "", loading: false, status: false, }); // STATE FOR API REQUEST const apiURL = new usersService(); const navigate = useNavigate(); //FUNCTION TO HANDLE SUBMIT const onSuccessPayment = () => { setRequestStatus({ message: "", loading: true, status: false }); let reqData = { amount: confirmCredit?.data?.account, currency: "NGN" }; apiURL .startTopUp(reqData) .then((res) => { if (res.data.internal_return < 0) { setRequestStatus({ message: "Could not finish transaction", loading: false, status: false, }); toast.success("Opps! something went wrong"); } // do something setRequestStatus({ message: "Topup successful", loading: false, status: true, }); toast.success("Account Topup was sucessful"); setTimeout(() => { navigate("/my-wallet", { replace: true }); }, 1000); }) .catch((err) => { // do something setRequestStatus({ message: "Opps! An Error Occured", loading: false, status: false, }); toast.success("Opps! something went wrong"); }); }; const config = { public_key: process.env.REACT_APP_FLUTTERWAVE_APIKEY, tx_ref: Date.now(), amount: confirmCredit?.data?.amount, currency: "NGN", payment_options: "card,mobilemoney,ussd", customer: { email: `${userDetails.email}`, phone_number: userDetails.phone, name: `${userDetails.lastname} ${userDetails.firstname}`, }, customizations: { title: "WrenchBoard", description: "Topup Payment", logo: "https://st2.depositphotos.com/4403291/7418/v/450/depositphotos_74189661-stock-illustration-online-shop-log.jpg", }, }; const fwConfig = { ...config, text: "Proceed", callback: (response) => { onSuccessPayment(); closePaymentModal(); // this will close the modal programmatically }, onClose: () => {}, }; // useEffect(() => { // // what happens if not data redirect user // if (!data) { // navigate("/my-wallet/add-fund", { replace: true }); // } else { // setPageLoading(false); // } // }, []); let __confirmCard = JSON.parse(confirmCredit?.data.card); const ThePaymentText = ({ value }) => (

{value.description} Card

Bank **************{value.digits}

); return (
{/*

Confirm Add Fund To Account


*/}
{confirmCredit?.show ? (

{confirmCredit?.data?.currency == "naira" ? "Amount (Naira):" : "Amount (Dollars):"}

{`${walletItem?.symbol} ${ Number(confirmCredit?.data?.amount).toLocaleString() || "" }`}
{/*

*/} {__confirmCard && ( )}

) : ( )}
{/*

{confirmCredit?.data?.currency && "Payment Method"}

*/} {/*
*/}
{confirmCredit?.data?.currency == "naira" ? ( ) : ( )}
{/*

Recent Activity

Activity Report

{payment.loading ? ( ) : ( )}
*/}
); } export default ConfirmAddFund;