This commit is contained in:
Kakabay 2024-03-23 22:09:08 +05:00
parent 30fc27679b
commit 32f9e0ac6d
7 changed files with 215 additions and 180 deletions

View File

@ -1,7 +1,7 @@
{
"files": {
"main.css": "/static/css/main.f916a3ad.css",
"main.js": "/static/js/main.1c734d63.js",
"main.js": "/static/js/main.cdf54ab7.js",
"static/media/logo-transp.svg": "/static/media/logo-transp.66d6235f12fb5d9a6264c592bce58c5a.svg",
"static/media/logo-bg.jpg": "/static/media/logo-bg.1d55df78b7376108f96c.jpg",
"static/media/credit-card.jpg": "/static/media/credit-card.ff2990f7d50439a8f34d.jpg",
@ -69,6 +69,6 @@
},
"entrypoints": [
"static/css/main.f916a3ad.css",
"static/js/main.1c734d63.js"
"static/js/main.cdf54ab7.js"
]
}

View File

@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"/><meta name="theme-color" content="#000000"/><meta name="Content-Security-Policy" content="default-src 'self'; script-src 'self' www.google.com www.gstatic.com; style-src 'self' https: 'unsafe-inline'; frame-src www.google.com;"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>Shahsy Otag</title><script defer="defer" src="/static/js/main.1c734d63.js"></script><link href="/static/css/main.f916a3ad.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script src="//www.google.com/recaptcha/api.js" nonce="{NONCE}" async defer="defer"></script></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"/><meta name="theme-color" content="#000000"/><meta name="Content-Security-Policy" content="default-src 'self'; script-src 'self' www.google.com www.gstatic.com; style-src 'self' https: 'unsafe-inline'; frame-src www.google.com;"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>Shahsy Otag</title><script defer="defer" src="/static/js/main.cdf54ab7.js"></script><link href="/static/css/main.f916a3ad.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script src="//www.google.com/recaptcha/api.js" nonce="{NONCE}" async defer="defer"></script></body></html>

File diff suppressed because one or more lines are too long

View File

@ -1,12 +1,12 @@
// IMPORT MODULES
import React, { useState, useContext } 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, useContext } 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 next_reverse from '../../icons/next-reverse.svg';
import next from "../../icons/next.svg";
import next_reverse from "../../icons/next-reverse.svg";
// import arrow from "../../icons/arrow.svg";
const schema = z.object({
@ -18,7 +18,7 @@ const schema = z.object({
// clientType: z.string(),
});
const BorrowerInfo = ({ setStage, isGuranter }) => {
const BorrowerInfo = ({ setStage, isGuranter, borrowerData }) => {
const { locale } = useContext(LanguageContext);
const {
@ -28,11 +28,11 @@ const BorrowerInfo = ({ setStage, isGuranter }) => {
} = useForm({
resolver: zodResolver(schema),
defaultValues: {
name: 'Hello',
surname: 'Hello',
passportSerial: 'Hello',
passportNumber: 23,
bankAccount: 23,
name: borrowerData.name,
surname: borrowerData.surname,
passportSerial: borrowerData.idSeria,
passportNumber: borrowerData.idNo,
bankAccount: borrowerData.accountNo,
},
});
@ -46,84 +46,93 @@ const BorrowerInfo = ({ setStage, isGuranter }) => {
<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">
<div className="input-block">
<label htmlFor="name">
{locale === 'TKM'
? 'At'
: locale === 'РУС'
? 'Имя'
: locale === 'ENG'
? 'Name'
: 'At'}
{locale === "TKM"
? "At"
: locale === "РУС"
? "Имя"
: locale === "ENG"
? "Name"
: "At"}
</label>
<input {...register('name')} type="text" id="name" disabled />
<input {...register("name")} type="text" id="name" disabled />
{errors.name && <span>{errors.name.message}</span>}
</div>
<div className="input-block">
<label htmlFor="surname">
{locale === 'TKM'
? 'At'
: locale === 'РУС'
? 'Фамилия'
: locale === 'ENG'
? 'Surname'
: 'At'}
{locale === "TKM"
? "At"
: locale === "РУС"
? "Фамилия"
: locale === "ENG"
? "Surname"
: "At"}
</label>
<input {...register('surname')} type="text" id="surname" disabled />
<input {...register("surname")} type="text" id="surname" disabled />
{errors.surname && <span>{errors.surname.message}</span>}
</div>
<div className="input-block">
<label htmlFor="passport-serial">
{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('passportSerial')} type="text" id="passport-serial" disabled />
{errors.passportSerial && <span>{errors.passportSerial.message}</span>}
<input
{...register("passportSerial")}
type="text"
id="passport-serial"
disabled
/>
{errors.passportSerial && (
<span>{errors.passportSerial.message}</span>
)}
</div>
<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"
disabled
/>
{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"
disabled
@ -133,35 +142,40 @@ const BorrowerInfo = ({ setStage, isGuranter }) => {
</div>
<div className="cu-bottom cd-2-title">
<button type="button" className="sign-btn reg-btn" onClick={() => setStage(1)}>
<button
type="button"
className="sign-btn reg-btn"
onClick={() => setStage(1)}
>
<div>
<div className="btn-img">
<img src={next_reverse} alt="logout" />
</div>
<h3>
{locale === 'TKM'
? 'Yza'
: locale === 'РУС'
? 'Назад'
: locale === 'ENG'
? 'Back'
: 'Yza'}
{locale === "TKM"
? "Yza"
: locale === "РУС"
? "Назад"
: locale === "ENG"
? "Back"
: "Yza"}
</h3>
</div>
</button>
<button
type="button"
className="sign-btn cu-btn"
onClick={() => (isGuranter ? setStage(3) : setStage(5))}>
onClick={() => (isGuranter ? setStage(3) : setStage(5))}
>
<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" />

View File

@ -20,12 +20,18 @@ const schema = z.object({
const IDSerias = ["I-AS", "I-AH", "I-BN", "I-LB", "I-MR", "I-DZ"];
const BorrowerStage = ({ setStage, isGuranter, setIsGuranter, stage }) => {
const BorrowerStage = ({
setStage,
isGuranter,
setIsGuranter,
stage,
setBorrowerData,
}) => {
const { locale } = useContext(LanguageContext);
const [isLoading, setIsLoading] = useState(false);
const [err, setErr] = useState(false);
const [isUser, setIsUser] = useState(false);
const [isUser, setIsUser] = useState(true);
const [idSerial, setIdSerial] = useState("I-AS");
@ -69,10 +75,14 @@ const BorrowerStage = ({ setStage, isGuranter, setIsGuranter, stage }) => {
throw new Error(`HTTP error! Status: ${response.status}`);
}
if (response.errCode !== 0) {
if (response.errCode === 0) {
setIsUser(true);
} else {
setIsUser(false);
}
setBorrowerData(response);
setIsLoading(false);
} catch (error) {
console.error(error.toString());

View File

@ -1,24 +1,24 @@
// IMPORT MODULES
import React, { useEffect, useRef, useState, useContext } from 'react';
import { LanguageContext } from '../../backend/LanguageContext';
import React, { useEffect, useRef, useState, useContext } from "react";
import { LanguageContext } from "../../backend/LanguageContext";
import axios from 'axios';
import axios from "axios";
// IMPORT IMAGES
import exit from '../../icons/exit.svg';
import { ReactComponent as Lines } from '../../icons/lines.svg';
import { ReactComponent as Img1 } from '../../icons/credit1.svg';
import { ReactComponent as Img2 } from '../../icons/credit2.svg';
import { ReactComponent as Img3 } from '../../icons/credit3.svg';
import { ReactComponent as Img4 } from '../../icons/credit4.svg';
import { ReactComponent as Img5 } from '../../icons/credit5.svg';
import { ReactComponent as Img6 } from '../../icons/credit6.svg';
import exit from "../../icons/exit.svg";
import { ReactComponent as Lines } from "../../icons/lines.svg";
import { ReactComponent as Img1 } from "../../icons/credit1.svg";
import { ReactComponent as Img2 } from "../../icons/credit2.svg";
import { ReactComponent as Img3 } from "../../icons/credit3.svg";
import { ReactComponent as Img4 } from "../../icons/credit4.svg";
import { ReactComponent as Img5 } from "../../icons/credit5.svg";
import { ReactComponent as Img6 } from "../../icons/credit6.svg";
// IMPORT COMPONENTS
import BorrowerStage from '../ImmediateCreditsStages/BorrowerStage';
import BorrowerInfo from '../ImmediateCreditsStages/BorrowerInfo';
import GuaranterStage from '../ImmediateCreditsStages/GuaranterStage';
import GuaranterInfo from '../ImmediateCreditsStages/GuaranterInfo';
import BorrowerStage from "../ImmediateCreditsStages/BorrowerStage";
import BorrowerInfo from "../ImmediateCreditsStages/BorrowerInfo";
import GuaranterStage from "../ImmediateCreditsStages/GuaranterStage";
import GuaranterInfo from "../ImmediateCreditsStages/GuaranterInfo";
const ImmediateCreditModal = ({
modalOpen,
@ -45,24 +45,24 @@ const ImmediateCreditModal = ({
`https://shahsyotag.halkbank.gov.tm/onlineloan-services/api/clientinfo`,
// `http://217.174.226.219:443/onlineloan-services/api/clientinfo`,
{
method: 'POST',
method: "POST",
headers: {
'Content-Type': 'application/json',
"Content-Type": "application/json",
},
body: JSON.stringify({
idSeria: 'I-AH',
idNo: '600898',
accountNo: '123456',
clientType: 'recipient',
idSeria: "I-AH",
idNo: "600898",
accountNo: "123456",
clientType: "recipient",
}),
},
}
);
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
// throw new Error(`HTTP error! Status: ${response.status}`);
}
console.log(response);
console.log(typeof response);
} catch (error) {
console.error(error.toString());
// Handle errors as needed
@ -121,22 +121,25 @@ const ImmediateCreditModal = ({
// });
return (
<section className={modalOpen ? 'modal credit-modal active' : 'modal credit-modal'}>
<section
className={modalOpen ? "modal credit-modal active" : "modal credit-modal"}
>
<div className="modal-container">
<div className="modal-inner" ref={window}>
<div className="modal-window">
<div className="modal-top">
<h2>
{locale === 'TKM'
? 'Çalt karz almak üçin onlaýn-ýüzlenme'
: 'Онлайн-заявка для получения быстрого кредита'}
{locale === "TKM"
? "Çalt karz almak üçin onlaýn-ýüzlenme"
: "Онлайн-заявка для получения быстрого кредита"}
</h2>
<button
type="button"
className="exit-btn"
onClick={() => {
setModalOpen(false);
}}>
}}
>
<div>
<img src={exit} alt="exit" />
</div>
@ -147,73 +150,81 @@ const ImmediateCreditModal = ({
<div className="icon-block active">
<Img4 className="modal-icon" />
<h3 className="icon-title">
{locale === 'TKM'
? 'Karz üçin maglumat'
: locale === 'РУС'
? 'Заполните данные'
: locale === 'ENG'
? 'Loan details'
: 'Karz üçin maglumat'}
{locale === "TKM"
? "Karz üçin maglumat"
: locale === "РУС"
? "Заполните данные"
: locale === "ENG"
? "Loan details"
: "Karz üçin maglumat"}
</h3>
</div>
<div className={stage > 1 ? 'line-block active' : 'line-block'}>
<div className={stage > 1 ? "line-block active" : "line-block"}>
<Lines className="lines" />
<Lines className="lines" />
</div>
<div className={stage > 2 ? 'icon-block active' : 'icon-block'}>
<div className={stage > 2 ? "icon-block active" : "icon-block"}>
<Img3 className="modal-icon" />
<h3 className="icon-title">
{locale === 'TKM'
? 'Şahsy maglumatlar'
: locale === 'РУС'
? 'Подтвердите личные данные'
: locale === 'ENG'
? 'Personal data'
: 'Şahsy maglumatlar'}
{locale === "TKM"
? "Şahsy maglumatlar"
: locale === "РУС"
? "Подтвердите личные данные"
: locale === "ENG"
? "Personal data"
: "Şahsy maglumatlar"}
</h3>
</div>
<div className={stage > 3 ? 'line-block active' : 'line-block'}>
<div className={stage > 3 ? "line-block active" : "line-block"}>
<Lines className="lines" />
<Lines className="lines" />
</div>
{isGuranter && (
<>
<div className={stage > 2 ? 'icon-block active' : 'icon-block'}>
<div
className={stage > 2 ? "icon-block active" : "icon-block"}
>
<Img4 className="modal-icon" />
<h3 className="icon-title">
{locale === 'TKM'
? 'Karz üçin maglumat'
: locale === 'РУС'
? 'Заполните данные поручитель'
: locale === 'ENG'
? 'Loan details'
: 'Karz üçin maglumat'}
{locale === "TKM"
? "Karz üçin maglumat"
: locale === "РУС"
? "Заполните данные поручитель"
: locale === "ENG"
? "Loan details"
: "Karz üçin maglumat"}
</h3>
</div>
<div className={stage > 2 ? 'line-block active' : 'line-block'}>
<div
className={stage > 2 ? "line-block active" : "line-block"}
>
<Lines className="lines" />
<Lines className="lines" />
</div>
<div className={stage > 3 ? 'icon-block active' : 'icon-block'}>
<div
className={stage > 3 ? "icon-block active" : "icon-block"}
>
<Img3 className="modal-icon" />
<h3 className="icon-title">
{locale === 'TKM'
? 'Şahsy maglumatlar'
: locale === 'РУС'
? 'Подтвердите данные поручителя'
: locale === 'ENG'
? 'Personal data'
: 'Şahsy maglumatlar'}
{locale === "TKM"
? "Şahsy maglumatlar"
: locale === "РУС"
? "Подтвердите данные поручителя"
: locale === "ENG"
? "Personal data"
: "Şahsy maglumatlar"}
</h3>
</div>
<div className={stage > 3 ? 'line-block active' : 'line-block'}>
<div
className={stage > 3 ? "line-block active" : "line-block"}
>
<Lines className="lines" />
<Lines className="lines" />
</div>
@ -274,56 +285,56 @@ const ImmediateCreditModal = ({
<div className="icon-block active">
<Img4 className="modal-icon" />
<h3 className="icon-title">
{locale === 'TKM'
? 'Karz üçin maglumat'
: locale === 'РУС'
? 'Заполните данные'
: locale === 'ENG'
? 'Loan details'
: 'Karz üçin maglumat'}
{locale === "TKM"
? "Karz üçin maglumat"
: locale === "РУС"
? "Заполните данные"
: locale === "ENG"
? "Loan details"
: "Karz üçin maglumat"}
</h3>
</div>
) : stage === 2 ? (
<div className="icon-block active">
<Img3 className="modal-icon" />
<h3 className="icon-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"}
</h3>
</div>
) : stage === 3 && isGuranter ? (
<div className="icon-block active">
<Img3 className="modal-icon" />
<h3 className="icon-title">
{locale === 'TKM'
? 'Şahsy maglumatlar'
: locale === 'РУС'
? 'Заполните данные поручителя'
: locale === 'ENG'
? 'Personal data'
: 'Şahsy maglumatlar'}
{locale === "TKM"
? "Şahsy maglumatlar"
: locale === "РУС"
? "Заполните данные поручителя"
: locale === "ENG"
? "Personal data"
: "Şahsy maglumatlar"}
</h3>
</div>
) : stage === 4 && isGuranter ? (
<div className="icon-block active">
<Img4 className="modal-icon" />
<h3 className="icon-title">
{locale === 'TKM'
? 'Karz üçin maglumat'
: locale === 'РУС'
? 'Подтвердите данные поручителя'
: locale === 'ENG'
? 'Loan details'
: 'Karz üçin maglumat'}
{locale === "TKM"
? "Karz üçin maglumat"
: locale === "РУС"
? "Подтвердите данные поручителя"
: locale === "ENG"
? "Loan details"
: "Karz üçin maglumat"}
</h3>
</div>
) : (
''
""
)}
</div>
@ -372,7 +383,7 @@ const ImmediateCreditModal = ({
// setId={setId}
/>
) : (
''
""
)}
</div>
</div>