diff --git a/src/components/MyWallet/Popup/AddFundDollars.jsx b/src/components/MyWallet/Popup/AddFundDollars.jsx index c3d3563..30f1569 100644 --- a/src/components/MyWallet/Popup/AddFundDollars.jsx +++ b/src/components/MyWallet/Popup/AddFundDollars.jsx @@ -64,17 +64,21 @@ const initialValues = { }; function AddFundDollars(props) { - let MaxNoOfCards = process.env.REACT_APP_MAX_CREDIT_CARDS // HOLDS THE VALUE OF THE MAX NUMBER OF CARDS USER CAN ADD - + let MaxNoOfCards = process.env.REACT_APP_MAX_CREDIT_CARDS; // HOLDS THE VALUE OF THE MAX NUMBER OF CARDS USER CAN ADD + const apiCall = new usersService(); let countryWallet = props.walletItem.country; - const [tab, setTab] = useState("previous"); + const [selectedOption, setSelectedOption] = useState("previous"); const { userDetails } = useSelector((state) => state?.userDetails); const [prevCardDetails, setPrevCardDetails] = useState({}); const [payListCards, setPayListCards] = useState({ loading: true, data: [] }); const [cardIcons, setCardIcons] = useState("atm-card"); const [prevCardError, setPrevCardError] = useState(""); + const handleOptionChange = (event) => { + setSelectedOption(event.target.value); + }; + const { firstname, lastname } = userDetails; // Handling Card Icons @@ -144,7 +148,12 @@ function AddFundDollars(props) { return; } - if (tab === "previous") { + let stateData = { + amount: Number(props.input) * 100, + currency: props.walletItem?.code, + }; + + if (selectedOption === "previous") { // To check if card is empty if (Object.keys(prevCardDetails).length === 0) { setPrevCardError("No card selected!"); @@ -158,11 +167,26 @@ function AddFundDollars(props) { show: { awaitConfirm: { loader: true } }, })); - let stateData = { - amount: Number(props.input) * 100, - card_uid: "", //added card_uid as empty string - currency: props.walletItem?.code, - }; + // Extracting card_uid from the previous card details + const paymentCardValue = prevCardDetails["payment-card"]; + + if (paymentCardValue) { + try { + const paymentCardObject = JSON.parse(paymentCardValue); + stateData = { + ...stateData, + card_uid: paymentCardObject.card_uid, + }; + } catch (error) { + console.error("Error parsing JSON:", error); + } + } else { + // For the new card details + stateData = { + ...stateData, + card_uid: "", + }; + } try { const res = await apiCall.getStartCredit(stateData); @@ -172,12 +196,11 @@ function AddFundDollars(props) { } const _response = res.data; - stateData.amount = Number(props.input); stateData.card = - tab === "previous" + selectedOption === "previous" ? prevCardDetails["payment-card"] : { ...values, cvv: values.cvv }; - stateData.cardType = tab === "previous" ? "prev" : "new"; + stateData.cardType = selectedOption === "previous" ? "prev" : "new"; stateData = { ...stateData, ..._response }; setTimeout(() => { @@ -225,36 +248,45 @@ function AddFundDollars(props) {
@@ -262,8 +294,8 @@ function AddFundDollars(props) {
{/* END OF switch button */} - {/* previous tab */} - {tab === "previous" && ( + {/* previous selectedOption */} + {selectedOption === "previous" && (
{payListCards.loading ? ( @@ -279,10 +311,11 @@ function AddFundDollars(props) { {currentPreviousCards.map((item, index) => ( ))} @@ -301,7 +335,7 @@ function AddFundDollars(props) { No Previous Card Found!

)} - {tab === "new" && ( + {selectedOption === "new" && (
- {payListCards.loading ? + {payListCards.loading ? (
- +
- :payListCards.data.length < MaxNoOfCards ? + ) : payListCards.data.length < MaxNoOfCards ? (
- {props.errors.expirationMonth && "**"} + {props.errors.expirationMonth && + "**"}
@@ -432,7 +467,8 @@ function AddFundDollars(props) { * - {props.errors.expirationYear && "**"} + {props.errors.expirationYear && + "**"}
@@ -561,14 +597,12 @@ function AddFundDollars(props) { }} - : - null - } + ) : null} )} - {tab == "previous" && ( + {selectedOption == "previous" && (