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 &&
+
+ }
+
+ {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 }