diff --git a/src/components/loan_screen/Offers.jsx b/src/components/loan_screen/Offers.jsx index 1807774..4b8014f 100644 --- a/src/components/loan_screen/Offers.jsx +++ b/src/components/loan_screen/Offers.jsx @@ -27,8 +27,8 @@ export default function Offers({step, handleStep, screens}) { // setError('*') }, onSuccess: (res) => { - const selectedOffer = res.data.loan[0].loan - handleStep({selectedOffer, ...res.data.loan[0]}, screens.selected_offer) + const selectedOffer = res.data.loan + handleStep({selectedOffer, ...res.data}, screens.selected_offer) } }) diff --git a/src/components/loan_screen/Pin.jsx b/src/components/loan_screen/Pin.jsx index bb8ba46..d667c41 100644 --- a/src/components/loan_screen/Pin.jsx +++ b/src/components/loan_screen/Pin.jsx @@ -30,7 +30,7 @@ export default function Pin({step, handleStep, screens}) { onSuccess: (res) => { handleStep(step.details, screens.offers) } - }) + }) const handleContinue = () => { if(!pin){ diff --git a/src/components/loan_screen/SelectedOffer.jsx b/src/components/loan_screen/SelectedOffer.jsx index 1f07596..2c88b2b 100644 --- a/src/components/loan_screen/SelectedOffer.jsx +++ b/src/components/loan_screen/SelectedOffer.jsx @@ -1,28 +1,64 @@ import React, { useState } from 'react' +import { useMutation } from '@tanstack/react-query' import Label from '../Label' import InputText from '../InputText' +import { loanApply } from '../../services/siteServices' export default function SelectedOffer({step, handleStep, screens}) { - const [pin, setPin] = useState('') + const [amount, setAmount] = useState('') - console.log(step) - const handleContinue = () => { - handleStep(step.details, screens.loan_pin) + const [error, setError] = useState('') + + + const handleAmountChange = ({target:{value}}) => { + setError('') + setAmount(value) } + const apply = useMutation({ + mutationFn: () => { + let fields = {amount: Number(amount), bvn:step.activeUser.bvn, loan:step.details.loan} + if(!fields.amount){ + // throw new Error('*') + throw ({message:'Please enter amount'}) + } + if(isNaN(amount)){ + throw ({message:'Amount must be a valid figure'}) + } + return loanApply(fields) + }, + onError: (error) => { + setError(error.message) + setTimeout(()=>{setError('')},3000) + }, + onSuccess: (res) => { + // const selectedOffer = res.data.loan[0].loan + handleStep(step.details, screens.loan_pin) + } + }) + return (

Tenor: 30 Days

-
+ + {error && + <> +
+

{error}

+
+ + }
) } + \ No newline at end of file diff --git a/src/services/siteServices.js b/src/services/siteServices.js index 0784d4a..9ebfeb0 100644 --- a/src/services/siteServices.js +++ b/src/services/siteServices.js @@ -66,6 +66,14 @@ export const loanSelect = (reqData) => { return postAuxEnd('/salary/loanselect', postData, false) } +// FUNCTION TO APPLY FOR LOAN +export const loanApply = (reqData) => { + let postData = { + ...reqData + } + return postAuxEnd('/salary/loanapply', postData, false) +} + // FUNCTION TO GET DEMO USERS export const demoUsersList = (reqData) => { const postData = { ...reqData }