diff --git a/src/components/GetLoan.jsx b/src/components/GetLoan.jsx index 98d3848..bddd9eb 100644 --- a/src/components/GetLoan.jsx +++ b/src/components/GetLoan.jsx @@ -31,8 +31,8 @@ export default function GetLoan() { activeUser: state.user }) - const handleStep = (details, screen) => { - setStep(prev => ({...prev, details, screen: [...prev.screen, screen]})) + const handleStep = (detailsToAdd, screen) => { + setStep(prev => ({...prev, details: {...prev.details, ...detailsToAdd}, screen: [...prev.screen, screen]})) } const {data, isFetching, isError, error} = useQuery({ diff --git a/src/components/loan_screen/Offers.jsx b/src/components/loan_screen/Offers.jsx index 05ffd28..1807774 100644 --- a/src/components/loan_screen/Offers.jsx +++ b/src/components/loan_screen/Offers.jsx @@ -1,10 +1,10 @@ import React from 'react' import { useQuery } from "@tanstack/react-query"; +import { useMutation } from '@tanstack/react-query' import { IoIosArrowForward } from "react-icons/io"; -import { getOffers } from '../../services/siteServices' +import { getOffers, loanSelect } from '../../services/siteServices' import queryKeys from '../../services/queryKeys' -import Label from '../Label'; export default function Offers({step, handleStep, screens}) { @@ -15,9 +15,22 @@ export default function Offers({step, handleStep, screens}) { const offers = data?.data?.product_data?.offers // OFFERS LIST - const handleContinue = ({target:{value}}) => { - handleStep({selectedOffer:value, ...step.details}, screens.selected_offer) - } + const selectedLoan = useMutation({ + mutationFn: (loan) => { + let fields = {bvn:step.activeUser.bvn, loan} + // if(!fields.bvn){ + // throw new Error('*') + // } + return loanSelect(fields) + }, + onError: (error) => { + // setError('*') + }, + onSuccess: (res) => { + const selectedOffer = res.data.loan[0].loan + handleStep({selectedOffer, ...res.data.loan[0]}, screens.selected_offer) + } + }) return (
@@ -33,32 +46,18 @@ export default function Offers({step, handleStep, screens}) {

{error.message}

: - //
- // - // - //
<> {offers.map(item => { let isDisabled = item.active == '0' ? true : false return ( ) @@ -67,13 +66,23 @@ export default function Offers({step, handleStep, screens}) { } <> + + {selectedLoan.isPending && +
+

loading...

+
+ } + + {selectedLoan.error && + <> +
+

{selectedLoan.error.message}

+
+ + } + {/* */} ) -} - - -const dummyData = [ - '100,000 Naira for 30 Days', '200,000 Naira for 30 Days', '100,000 Naira for 60 Days', '200,000 Naira for 60 Days' -] \ No newline at end of file +} \ No newline at end of file diff --git a/src/components/loan_screen/SelectedOffer.jsx b/src/components/loan_screen/SelectedOffer.jsx index c54d436..1f07596 100644 --- a/src/components/loan_screen/SelectedOffer.jsx +++ b/src/components/loan_screen/SelectedOffer.jsx @@ -6,7 +6,7 @@ export default function SelectedOffer({step, handleStep, screens}) { const [pin, setPin] = useState('') - console.log(step.details) + console.log(step) const handleContinue = () => { handleStep(step.details, screens.loan_pin) } diff --git a/src/services/siteServices.js b/src/services/siteServices.js index 0593329..0784d4a 100644 --- a/src/services/siteServices.js +++ b/src/services/siteServices.js @@ -58,6 +58,14 @@ export const verifyPin = (reqData) => { return postAuxEnd('/salary/verifypin', postData, false) } +// FUNCTION TO RUN WHEN USER SELECTS A LOAN +export const loanSelect = (reqData) => { + let postData = { + ...reqData + } + return postAuxEnd('/salary/loanselect', postData, false) +} + // FUNCTION TO GET DEMO USERS export const demoUsersList = (reqData) => { const postData = { ...reqData }