From 4b2e73949e534fd88962e35227b36cc45898dfdf Mon Sep 17 00:00:00 2001 From: victorAnumudu Date: Mon, 10 Nov 2025 13:16:14 +0100 Subject: [PATCH] confirmation-modal --- .../transactionDetails/LoanDetails.jsx | 52 +++++++++++++++++-- .../RepaymentScheduleDetails.jsx | 28 +++++++++- 2 files changed, 76 insertions(+), 4 deletions(-) diff --git a/src/components/transactionDetails/LoanDetails.jsx b/src/components/transactionDetails/LoanDetails.jsx index 64a38b4..3ae8d3b 100644 --- a/src/components/transactionDetails/LoanDetails.jsx +++ b/src/components/transactionDetails/LoanDetails.jsx @@ -1,4 +1,4 @@ -import React from 'react' +import React, { useState } from 'react' import {useQuery} from "@tanstack/react-query"; import Icons from '../Icons' @@ -10,9 +10,23 @@ import getDateFromDateString from '../../helpers/GetDateFromDateString'; import formatNumber from '../../helpers/formatNumber' import getTimeFromDateString from "../../helpers/GetTimeFromDateString"; import {initiateDisburseRetrials, initiateDisburseVerify} from "../../services/siteEventService" +import ModalWrapper from '../modals/ModalWrapper'; +import MainBtn from '../MainBtn'; export default function LoanDetails({transactionID}) { + const [retryDisbursementModal, setRetryDisbursementModal] = useState({}) + const [retryVerifyModal, setRetryVerifyModal] = useState({}) + const handleSetRetryDisbursementModal = (transactioID) => { + setRetryDisbursementModal({status:true, transactioID}) + } + const closeRetryDisbursementModal = () => {setRetryDisbursementModal({})} + + const handleSetRetryVerifyModal = (transactioID) => { + setRetryVerifyModal({status:true, transactioID}) + } + const closeRetryVerifyModal = () => {setRetryVerifyModal({})} + const {data: allLoans, isFetching, isError, error} = useQuery({ queryKey: [...queryKeys.loans, transactionID], queryFn: () => getLoans({transaction_id: transactionID}) @@ -26,6 +40,7 @@ export default function LoanDetails({transactionID}) { const fields = { "transactionId": transactioID } + closeRetryDisbursementModal() // CLOSES THE DISBURSEMENT MODAL return initiateDisburseRetrials(fields) // console.log('Button clicked!'); }; @@ -35,10 +50,12 @@ export default function LoanDetails({transactionID}) { const fields = { "transactionId": transactioID } + closeRetryVerifyModal() // CLOSES THE VERIFY MODAL return initiateDisburseVerify(fields) // console.log('Button clicked!'); }; + return ( <> {isFetching ? @@ -147,7 +164,8 @@ export default function LoanDetails({transactionID}) {
@@ -172,7 +190,7 @@ export default function LoanDetails({transactionID}) {
@@ -200,6 +218,34 @@ export default function LoanDetails({transactionID}) { : null } + {retryDisbursementModal.status && + +
+ +

{'Confirm Retry Disbursement?'}

+
+ + handleClick(retryDisbursementModal.transactioID)} text='Yes' className="text-white bg-primary hover:bg-primary/90 focus:ring-0 focus:outline-none ring-0 font-medium rounded-lg text-sm px-5 py-2.5 text-center" /> +
+
+
+ } + {retryVerifyModal.status && + +
+ +

{'Continue Verify Disburesement?'}

+
+ + handleRetryClick(retryVerifyModal.transactioID)} text='Yes' className="text-white bg-primary hover:bg-primary/90 focus:ring-0 focus:outline-none ring-0 font-medium rounded-lg text-sm px-5 py-2.5 text-center" /> +
+
+
+ } ) } \ No newline at end of file diff --git a/src/components/transactionDetails/RepaymentScheduleDetails.jsx b/src/components/transactionDetails/RepaymentScheduleDetails.jsx index 2d1ef66..124ec0b 100644 --- a/src/components/transactionDetails/RepaymentScheduleDetails.jsx +++ b/src/components/transactionDetails/RepaymentScheduleDetails.jsx @@ -10,7 +10,16 @@ import getDateFromDateString from '../../helpers/GetDateFromDateString'; import formatNumber from '../../helpers/formatNumber'; import localSiteIcons from "../../helpers/localSiteIcons"; import {initiateLoanPayment } from "../../services/siteEventService" +import ModalWrapper from '../modals/ModalWrapper'; +import MainBtn from '../MainBtn'; export default function RepaymentScheduleDetails({transactionID}) { + + const [retryPaymentModal, setRetryPaymentModal] = useState({}) + const handleSetRetryPaymentModal = (transactioID) => { + setRetryPaymentModal({status:true, transactioID}) + } + + const closeRetryPaymentModal = () => {setRetryPaymentModal({})} const [page, setPage] = useState(1) @@ -28,6 +37,7 @@ export default function RepaymentScheduleDetails({transactionID}) { const fields = { "transactionId": transactioID } + closeRetryPaymentModal() // CLOSES PAYMENT INITIATE MODAL return initiateLoanPayment(fields) // console.log('Button clicked!'); }; @@ -37,6 +47,7 @@ export default function RepaymentScheduleDetails({transactionID}) { }, []) return ( + <>

Repayment Schedule

{isFetching ? @@ -117,7 +128,7 @@ export default function RepaymentScheduleDetails({transactionID}) {
@@ -138,5 +149,20 @@ export default function RepaymentScheduleDetails({transactionID}) { }
+ {retryPaymentModal.status && + +
+ +

{'Continue Initiate Payment?'}

+
+ + handleClick(retryDisbursementModal.transactioID)} text='Yes' className="text-white bg-primary hover:bg-primary/90 focus:ring-0 focus:outline-none ring-0 font-medium rounded-lg text-sm px-5 py-2.5 text-center" /> +
+
+
+ } + ) } \ No newline at end of file