trying to add api
This commit is contained in:
parent
a3e1ee4d58
commit
82870804ff
|
|
@ -1,14 +1,14 @@
|
|||
// IMPORT MODULES
|
||||
import React, { useState, useRef, useContext, useEffect } from 'react';
|
||||
import { LanguageContext } from '../../backend/LanguageContext';
|
||||
import { useForm } from 'react-hook-form';
|
||||
import { z } from 'zod';
|
||||
import { zodResolver } from '@hookform/resolvers/zod';
|
||||
import React, { useState, useRef, useContext, useEffect } from "react";
|
||||
import { LanguageContext } from "../../backend/LanguageContext";
|
||||
import { useForm } from "react-hook-form";
|
||||
import { z } from "zod";
|
||||
import { zodResolver } from "@hookform/resolvers/zod";
|
||||
// IMPORT IMAGES
|
||||
import next from '../../icons/next.svg';
|
||||
import arrow from '../../icons/arrow-gray.svg';
|
||||
import next from "../../icons/next.svg";
|
||||
import arrow from "../../icons/arrow-gray.svg";
|
||||
|
||||
import Select from '../global/Select';
|
||||
import Select from "../global/Select";
|
||||
// import arrow from "../../icons/arrow.svg";
|
||||
|
||||
const schema = z.object({
|
||||
|
|
@ -18,19 +18,23 @@ const schema = z.object({
|
|||
// clientType: z.string(),
|
||||
});
|
||||
|
||||
const IDSerias = ['I-AS', 'I-AH', 'I-BN', 'I-LB', 'I-MR', 'I-DZ'];
|
||||
const IDSerias = ["I-AS", "I-AH", "I-BN", "I-LB", "I-MR", "I-DZ"];
|
||||
|
||||
const BorrowerStage = ({ setStage, isGuranter, setIsGuranter, stage }) => {
|
||||
const { locale } = useContext(LanguageContext);
|
||||
|
||||
const [idSerial, setIdSerial] = useState('I-AS');
|
||||
const [isLoading, setIsLoading] = useState(false);
|
||||
const [err, setErr] = useState(false);
|
||||
const [isUser, setIsUser] = useState(false);
|
||||
|
||||
const [idSerial, setIdSerial] = useState("I-AS");
|
||||
|
||||
const isGuranterHandler = (value) => {
|
||||
setIsGuranter(value);
|
||||
};
|
||||
|
||||
const checkboxHandleChange = (e) => {
|
||||
e.target.value === 'guaranter' ? setIsGuranter(true) : setIsGuranter(false);
|
||||
e.target.value === "guaranter" ? setIsGuranter(true) : setIsGuranter(false);
|
||||
};
|
||||
|
||||
const {
|
||||
|
|
@ -41,72 +45,127 @@ const BorrowerStage = ({ setStage, isGuranter, setIsGuranter, stage }) => {
|
|||
resolver: zodResolver(schema),
|
||||
});
|
||||
|
||||
const onSubmit = (data) => {
|
||||
setStage(2);
|
||||
const fetchData = async (idSeria, idNo, accountNo, clientType) => {
|
||||
try {
|
||||
setIsLoading(true);
|
||||
const response = await fetch(
|
||||
`https://shahsyotag.halkbank.gov.tm/onlineloan-services/api/clientinfo`,
|
||||
// `http://217.174.226.219:443/onlineloan-services/api/clientinfo`,
|
||||
{
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({
|
||||
idSeria: idSeria,
|
||||
idNo: idNo,
|
||||
accountNo: accountNo,
|
||||
clientType: clientType ? "guaranter" : "recipient",
|
||||
}),
|
||||
}
|
||||
);
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error(`HTTP error! Status: ${response.status}`);
|
||||
}
|
||||
|
||||
if (response.errCode !== 0) {
|
||||
setIsUser(false);
|
||||
}
|
||||
|
||||
setIsLoading(false);
|
||||
} catch (error) {
|
||||
console.error(error.toString());
|
||||
// Handle errors as needed
|
||||
setErr(true);
|
||||
}
|
||||
};
|
||||
|
||||
const onSubmit = (data) => {
|
||||
fetchData(idSerial, data.passportNumber, data.bankAccount, isGuranter);
|
||||
isUser ? setStage(2) : setStage(1);
|
||||
};
|
||||
|
||||
if (isLoading) {
|
||||
return (
|
||||
<section className="imm-cs-1">
|
||||
<h1>Loading</h1>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
|
||||
if (!isUser) {
|
||||
return (
|
||||
<section className="imm-cs-1">
|
||||
<h1>Not a user</h1>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<section className="imm-cs-1">
|
||||
<form onSubmit={handleSubmit(onSubmit)}>
|
||||
<h2 className="cs-2-title">
|
||||
{locale === 'TKM'
|
||||
? 'Karzyň kalkulýatory'
|
||||
: locale === 'РУС'
|
||||
? 'Заполните данные'
|
||||
: locale === 'ENG'
|
||||
? 'Loan calculator'
|
||||
: 'Karzyň kalkulýatory'}
|
||||
{locale === "TKM"
|
||||
? "Karzyň kalkulýatory"
|
||||
: locale === "РУС"
|
||||
? "Заполните данные"
|
||||
: locale === "ENG"
|
||||
? "Loan calculator"
|
||||
: "Karzyň kalkulýatory"}
|
||||
</h2>
|
||||
<div className="imm-credit-form-wrapper">
|
||||
<Select
|
||||
items={IDSerias}
|
||||
customId={'card'}
|
||||
blockName={'card-1-select'}
|
||||
elName={'card-1-select-el'}
|
||||
name={'passportSerial'}
|
||||
customId={"card"}
|
||||
blockName={"card-1-select"}
|
||||
elName={"card-1-select-el"}
|
||||
name={"passportSerial"}
|
||||
eTarget={true}
|
||||
register={register}
|
||||
label={
|
||||
locale === 'TKM'
|
||||
? 'Kartyň görnüşi'
|
||||
: locale === 'РУС'
|
||||
? 'Серия паспорта'
|
||||
: locale === 'ENG'
|
||||
? 'Card type'
|
||||
: 'Kartyň görnüşi'
|
||||
locale === "TKM"
|
||||
? "Kartyň görnüşi"
|
||||
: locale === "РУС"
|
||||
? "Серия паспорта"
|
||||
: locale === "ENG"
|
||||
? "Card type"
|
||||
: "Kartyň görnüşi"
|
||||
}
|
||||
stateSetter={setIdSerial}
|
||||
/>
|
||||
|
||||
<div className="input-block">
|
||||
<label htmlFor="passport-number">
|
||||
{locale === 'TKM'
|
||||
? 'Hasaba almak'
|
||||
: locale === 'РУС'
|
||||
? 'Номер паспорта'
|
||||
: locale === 'ENG'
|
||||
? 'Sign up'
|
||||
: 'Hasaba almak'}
|
||||
{locale === "TKM"
|
||||
? "Hasaba almak"
|
||||
: locale === "РУС"
|
||||
? "Номер паспорта"
|
||||
: locale === "ENG"
|
||||
? "Sign up"
|
||||
: "Hasaba almak"}
|
||||
</label>
|
||||
<input
|
||||
{...register('passportNumber', { valueAsNumber: true })}
|
||||
{...register("passportNumber", { valueAsNumber: true })}
|
||||
type="number"
|
||||
id="passport-number"
|
||||
/>
|
||||
{errors.passportNumber && <span>{errors.passportNumber.message}</span>}
|
||||
{errors.passportNumber && (
|
||||
<span>{errors.passportNumber.message}</span>
|
||||
)}
|
||||
</div>
|
||||
<div className="input-block">
|
||||
<label htmlFor="bank-acc">
|
||||
{locale === 'TKM'
|
||||
? 'Hasaba almak'
|
||||
: locale === 'РУС'
|
||||
? 'Номер банковского аккаунта'
|
||||
: locale === 'ENG'
|
||||
? 'Sign up'
|
||||
: 'Hasaba almak'}
|
||||
{locale === "TKM"
|
||||
? "Hasaba almak"
|
||||
: locale === "РУС"
|
||||
? "Номер банковского аккаунта"
|
||||
: locale === "ENG"
|
||||
? "Sign up"
|
||||
: "Hasaba almak"}
|
||||
</label>
|
||||
<input
|
||||
{...register('bankAccount', { valueAsNumber: true })}
|
||||
{...register("bankAccount", { valueAsNumber: true })}
|
||||
type="number"
|
||||
id="bank-acc"
|
||||
/>
|
||||
|
|
@ -115,47 +174,53 @@ const BorrowerStage = ({ setStage, isGuranter, setIsGuranter, stage }) => {
|
|||
</div>
|
||||
|
||||
<div className="imm-credit-checkbox-group">
|
||||
<div className="imm-credit-checkbox-block" onClick={() => isGuranterHandler(false)}>
|
||||
<div
|
||||
className="imm-credit-checkbox-block"
|
||||
onClick={() => isGuranterHandler(false)}
|
||||
>
|
||||
<input
|
||||
type="radio"
|
||||
id="borrower"
|
||||
value={'Borrower'}
|
||||
value={"Borrower"}
|
||||
name="client-type"
|
||||
checked={isGuranter ? false : true}
|
||||
onChange={checkboxHandleChange}
|
||||
{...register('clientType')}
|
||||
{...register("clientType")}
|
||||
className="radio-button"
|
||||
/>
|
||||
<label htmlFor="borrower">
|
||||
{locale === 'TKM'
|
||||
? 'Hasaba almak'
|
||||
: locale === 'РУС'
|
||||
? 'Гос. страх'
|
||||
: locale === 'ENG'
|
||||
? 'Borrower'
|
||||
: 'Hasaba almak'}
|
||||
{locale === "TKM"
|
||||
? "Hasaba almak"
|
||||
: locale === "РУС"
|
||||
? "Гос. страх"
|
||||
: locale === "ENG"
|
||||
? "Borrower"
|
||||
: "Hasaba almak"}
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div className="imm-credit-checkbox-block" onClick={() => isGuranterHandler(true)}>
|
||||
<div
|
||||
className="imm-credit-checkbox-block"
|
||||
onClick={() => isGuranterHandler(true)}
|
||||
>
|
||||
<input
|
||||
type="radio"
|
||||
id="isGuranter"
|
||||
value={'guaranter'}
|
||||
value={"guaranter"}
|
||||
name="client-type"
|
||||
checked={isGuranter ? true : false}
|
||||
onChange={checkboxHandleChange}
|
||||
{...register('clientType')}
|
||||
{...register("clientType")}
|
||||
className="radio-button"
|
||||
/>
|
||||
<label htmlFor="isGuranter">
|
||||
{locale === 'TKM'
|
||||
? 'Hasaba almak'
|
||||
: locale === 'РУС'
|
||||
? 'Поручитель'
|
||||
: locale === 'ENG'
|
||||
? 'guaranter'
|
||||
: 'Hasaba almak'}
|
||||
{locale === "TKM"
|
||||
? "Hasaba almak"
|
||||
: locale === "РУС"
|
||||
? "Поручитель"
|
||||
: locale === "ENG"
|
||||
? "guaranter"
|
||||
: "Hasaba almak"}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -166,16 +231,17 @@ const BorrowerStage = ({ setStage, isGuranter, setIsGuranter, stage }) => {
|
|||
className="sign-btn cd-btn"
|
||||
onClick={() => {
|
||||
// setData({ ...data, type: inputValid, type_localized: input });
|
||||
}}>
|
||||
}}
|
||||
>
|
||||
<div>
|
||||
<h3>
|
||||
{locale === 'TKM'
|
||||
? 'Dowam et'
|
||||
: locale === 'РУС'
|
||||
? 'Продолжить'
|
||||
: locale === 'ENG'
|
||||
? 'Proceed'
|
||||
: 'Dowam et'}
|
||||
{locale === "TKM"
|
||||
? "Dowam et"
|
||||
: locale === "РУС"
|
||||
? "Продолжить"
|
||||
: locale === "ENG"
|
||||
? "Proceed"
|
||||
: "Dowam et"}
|
||||
</h3>
|
||||
<div className="btn-img">
|
||||
<img src={next} alt="logout" />
|
||||
|
|
|
|||
Loading…
Reference in New Issue