diff --git a/src/backend/changePassword.js b/src/backend/changePassword.js index 48f151a..f3b9909 100644 --- a/src/backend/changePassword.js +++ b/src/backend/changePassword.js @@ -17,6 +17,9 @@ export const changePassword = ( setState(res.data.user); setIsLoading(false); setSuccess(true); + setTimeout(() => { + setSuccess(false); + }, 2000); if (tokenSaved) { localStorage.setItem("userToken", res.data.token); } diff --git a/src/backend/getUserInfo.js b/src/backend/getUserInfo.js index 9b2510a..c2089ae 100644 --- a/src/backend/getUserInfo.js +++ b/src/backend/getUserInfo.js @@ -4,11 +4,9 @@ import axios from "axios"; export const getUserInfo = (url, userToken, setState, setLoaderActive) => { axios .get(`${url}?token=${userToken}`) - .then((res, err) => { + .then((res) => { setLoaderActive(false); - if (err) { - return `Failed to fetch user info: ${err}`; - } + if (setState) { setState(res.data.me); } else { diff --git a/src/backend/sendMessage.js b/src/backend/sendMessage.js index 0d42615..f03240f 100644 --- a/src/backend/sendMessage.js +++ b/src/backend/sendMessage.js @@ -1,11 +1,12 @@ // IMPORT MODULES import axios from "axios"; -export const sendMessage = (url, token, data, stateSetter) => { +export const sendMessage = (url, token, data, stateSetter, loader) => { axios .post(`${url}?token=${token}`, data) .then((res) => { stateSetter(false); + loader(); }) .catch(() => { { diff --git a/src/backend/sendRequest.js b/src/backend/sendRequest.js index 430685e..b8accc5 100644 --- a/src/backend/sendRequest.js +++ b/src/backend/sendRequest.js @@ -2,6 +2,12 @@ import axios from "axios"; export const sendRequest = (url, token, data, setState, setLoader) => { const form = new FormData(); + + let today = new Date(); + let dd = String(today.getDate()).padStart(2, "0"); + let mm = String(today.getMonth() + 1).padStart(2, "0"); //January is 0! + let yyyy = today.getFullYear(); + data.file.map((el) => { form.append("file[]", el); }); @@ -22,6 +28,7 @@ export const sendRequest = (url, token, data, setState, setLoader) => { form.append("amount_of_salary", data.salary); form.append("position", data.position); form.append("work_experience", data.exp); + form.append("date", `${dd}.${mm}.${yyyy}`); axios .post(`${url}?token=${token}`, form) .then((res) => { diff --git a/src/backend/sendRequestCard.js b/src/backend/sendRequestCard.js index d926056..6a44a84 100644 --- a/src/backend/sendRequestCard.js +++ b/src/backend/sendRequestCard.js @@ -2,7 +2,10 @@ import axios from "axios"; // import { getDate } from "../helpers/Date"; export const sendRequestCard = (url, token, data, setLoader) => { - let today = new Date().toLocaleDateString(); + let today = new Date(); + let dd = String(today.getDate()).padStart(2, "0"); + let mm = String(today.getMonth() + 1).padStart(2, "0"); //January is 0! + let yyyy = today.getFullYear(); const form = new FormData(); data.file.map((el) => { form.append("file[]", el); @@ -24,13 +27,15 @@ export const sendRequestCard = (url, token, data, setLoader) => { form.append("selected_time", data.selected_time); form.append("the_codeword", data.the_codeword); form.append("sms_notification", data.sms_notification); - // form.append("date", `today`); + form.append("date", `${dd}.${mm}.${yyyy}`); axios .post(`${url}?token=${token}`, form) .then((res) => { window.open(res.request.responseURL, "_blank").focus(); - setLoader(false); + if (setLoader) { + setLoader(false); + } }) .catch(() => { setLoader(false); diff --git a/src/components/CardStages/CardStage6.js b/src/components/CardStages/CardStage6.js index 0a0e872..f13f58c 100644 --- a/src/components/CardStages/CardStage6.js +++ b/src/components/CardStages/CardStage6.js @@ -10,7 +10,13 @@ import next_reverse from "../../icons/next-reverse.svg"; import { sendRequestCard } from "../../backend/sendRequestCard"; import { getUserInfo } from "../../backend/getUserInfo"; -const CardStage6 = ({ setStage, data, setLoader, setModalOpen }) => { +const CardStage6 = ({ + setStage, + data, + setLoader, + setModalOpen, + setSuccess, +}) => { const { setUser } = useContext(UserContext); const token = localStorage.getItem("userToken"); const postUrl = "http://95.85.124.85:8000/api/online_card"; @@ -118,8 +124,14 @@ const CardStage6 = ({ setStage, data, setLoader, setModalOpen }) => { onClick={() => { setLoader(true); setModalOpen(false); - sendRequestCard(postUrl, token, data, setLoader); - getUserInfo(getUrl, token, setUser, () => null); + sendRequestCard(postUrl, token, data, () => { + setSuccess(true); + setLoader(false); + setTimeout(() => { + setSuccess(false); + getUserInfo(getUrl, token, setUser, () => null); + }, 2000); + }); }} >
diff --git a/src/components/CreditStages/CreditStage6.js b/src/components/CreditStages/CreditStage6.js index c984a24..4d95b41 100644 --- a/src/components/CreditStages/CreditStage6.js +++ b/src/components/CreditStages/CreditStage6.js @@ -121,17 +121,15 @@ const CreditStage6 = ({ postUrl, token, data, - (res) => { - if (res.headers.status === "200") { - setSuccess(true); - setTimeout(() => { - setSuccess(false); - }, 2000); - } + () => { + setSuccess(true); + setTimeout(() => { + setSuccess(false); + getUserInfo(getUrl, token, setUser, () => null); + }, 2000); }, setLoader ); - getUserInfo(getUrl, token, setUser, () => null); }} >
diff --git a/src/components/cards/ModalForm.js b/src/components/cards/ModalForm.js index 8a18378..ff448bf 100644 --- a/src/components/cards/ModalForm.js +++ b/src/components/cards/ModalForm.js @@ -21,7 +21,14 @@ import CardStage3 from "../CardStages/CardStage3"; import CardStage4 from "../CardStages/CardStage4"; import CardStage6 from "../CardStages/CardStage6"; -const ModalForm = ({ modalOpen, setModalOpen, stage, setStage, setLoader }) => { +const ModalForm = ({ + modalOpen, + setModalOpen, + stage, + setStage, + setLoader, + setSuccess, +}) => { const window = useRef(); const [data, setData] = useState({}); @@ -148,6 +155,7 @@ const ModalForm = ({ modalOpen, setModalOpen, stage, setStage, setLoader }) => { setData={setData} setLoader={setLoader} setModalOpen={setModalOpen} + setSuccess={setSuccess} /> ) : ( "" diff --git a/src/pages/Base.js b/src/pages/Base.js index eee15de..a764cac 100644 --- a/src/pages/Base.js +++ b/src/pages/Base.js @@ -1,5 +1,5 @@ // IMPORT MODULES -import React, { useCallback, useContext, useState } from "react"; +import React, { useContext } from "react"; import { UserContext } from "../backend/UserContext"; // IMPORT COMPONENTS @@ -37,7 +37,62 @@ const Base = () => { Статус Действие + + {user ? ( + user.online_credit.length !== 0 ? ( + user.online_credit.map((el, i) => { + return ( + + #{el.id} + {el.type} + {el.date} + --status + --action + + ); + }) + ) : user ? ( + user.online_card.length !== 0 ? ( + "" + ) : ( + + Заявок нет + + + + + + ) + ) : null + ) : user ? ( + user.online_card.length !== 0 ? ( + "" + ) : ( + + Заявок нет + + + + + + ) + ) : null} {user + ? user.online_card.length !== 0 + ? user.online_card.map((el, i) => { + return ( + + #{el.id} + {el.selected_card} + {el.date} + --status + --action + + ); + }) + : null + : null} + {/* {user ? user.online_credit.length !== 0 ? user.online_credit.map((el, i) => { return ( @@ -65,16 +120,8 @@ const Base = () => { ); }) - ) : ( - - Заявок нет - - - - - - ) - ) : ( + ) : user.online_credit.length !== 0 ? null + : ( Заявок нет @@ -82,7 +129,7 @@ const Base = () => { - )} + )} */}
diff --git a/src/pages/Cards.js b/src/pages/Cards.js index ec0ba8b..8f70225 100644 --- a/src/pages/Cards.js +++ b/src/pages/Cards.js @@ -6,12 +6,14 @@ import { UserContext } from "../backend/UserContext"; import Breadcrumb from "../components/global/Breadcrumb"; import ModalForm from "../components/cards/ModalForm"; import Loader from "../components/global/Loader"; +import Success from "../components/global/Success"; // IMPORT IMAGES import card from "../icons/card-black.svg"; import add from "../icons/add.svg"; const Cards = () => { + const [success, setSuccess] = useState(false); const { user } = useContext(UserContext); const [loader, setLoader] = useState(false); const [modalOpen, setModalOpen] = useState(false); @@ -25,6 +27,7 @@ const Cards = () => { }, [modalOpen]); return (
+ {success ? : null} { setStage={setStage} loader={loader} setLoader={setLoader} + setSuccess={setSuccess} /> {loader ? : null}
@@ -70,13 +74,15 @@ const Cards = () => { {user ? ( user.online_card.length !== 0 ? ( user.online_card.map((el, i) => { - - #{el.id} - {el.selected_card} - {el.date} - --status - --action - ; + return ( + + #{el.id} + {el.selected_card} + {el.date} + --status + --action + + ); }) ) : ( diff --git a/src/pages/ContactUs.js b/src/pages/ContactUs.js index 4fcc411..e9ee081 100644 --- a/src/pages/ContactUs.js +++ b/src/pages/ContactUs.js @@ -5,6 +5,7 @@ import React, { useState, useEffect } from "react"; import CustomSelect from "../components/global/CustomSelect"; import Breadcrumb from "../components/global/Breadcrumb"; import Loader from "../components/global/Loader"; +import Success from "../components/global/Success"; // IMPORT FUNCTIONS import { sendMessage } from "../backend/sendMessage"; @@ -14,6 +15,7 @@ import mail from "../icons/mail-black.svg"; import send from "../icons/send.svg"; const ContactUs = () => { + const [success, setSuccess] = useState(false); const token = localStorage.getItem("userToken"); const postUrl = "http://95.85.124.85:8000/api/message"; const formData = new FormData(); @@ -33,6 +35,9 @@ const ContactUs = () => { }, [topic, inputValid]); return (
+ {success ? ( + + ) : null} { disabled={!btnEnabled} className="sign-btn cu-btn" onClick={() => { + setIsLoading(true); formData.append("subject", topic); formData.append("message", inputValid.message); - sendMessage(postUrl, token, formData, (e) => { - setIsLoading(e); - }); - setIsLoading(true); + sendMessage( + postUrl, + token, + formData, + (e) => { + setIsLoading(e); + }, + () => { + setSuccess(true); + setTimeout(() => { + setSuccess(false); + }, 2000); + } + ); }} >
diff --git a/src/pages/Credits.js b/src/pages/Credits.js index beffc46..909ccec 100644 --- a/src/pages/Credits.js +++ b/src/pages/Credits.js @@ -28,7 +28,7 @@ const Credits = () => { return (
- {success ? : null} + {success ? : null} { {user ? ( user.online_credit.length !== 0 ? ( user.online_credit.map((el, i) => { - - #{el.id} - {el.type} - {el.date} - --status - --action - ; + return ( + + #{el.id} + {el.type} + {el.date} + --status + --action + + ); }) ) : ( diff --git a/src/pages/Recovery.js b/src/pages/Recovery.js index 2d4e01e..a08f068 100644 --- a/src/pages/Recovery.js +++ b/src/pages/Recovery.js @@ -1,10 +1,11 @@ // IMPORT MODULES -import React, { useState, useEffect, useContext } from "react"; +import React, { useState, useEffect, useContext, useRef } from "react"; import { UserContext } from "../backend/UserContext"; // IMPORT COMPONENTS import Breadcrumb from "../components/global/Breadcrumb"; import Loader from "../components/global/Loader"; +import Success from "../components/global/Success"; // IMPORT IMAGES import recovery from "../icons/recovery.svg"; @@ -17,6 +18,9 @@ import { ValidateEmail } from "../validators/ValidateEmail"; import { changePassword } from "../backend/changePassword"; const Recovery = () => { + const inp1 = useRef(); + const inp2 = useRef(); + const inp3 = useRef(); const [success, setSuccess] = useState(false); const [isLoading, setIsLoading] = useState(false); const postUrl = "http://95.85.124.85:8000/api/me"; @@ -46,6 +50,7 @@ const Recovery = () => { return (
+ {success ? : null} { disabled={!btnEnabled} className="sign-btn cu-btn" onClick={() => { + inp1.current.value = ""; + inp2.current.value = ""; + inp3.current.value = ""; setIsLoading(true); formData.append("email", inputValid.email); formData.append("password", inputValid.new); @@ -99,24 +107,42 @@ const Recovery = () => {
{ - if (ValidateEmail(e.target.value)) { - setInputValid({ - ...inputValid, - email: e.target.value, - }); + setValidate(true); + if (ValidateEmail(e.target.value) && user) { + if (user.email === e.target.value) { + setInputValid({ + ...inputValid, + email: e.target.value, + }); + } else { + setInputValid({ ...inputValid, email: false }); + } } else { setInputValid({ ...inputValid, email: false }); } }} /> + {validate ? ( + + Введен неверный E-mail + + ) : ( + "" + )}
{
{ )}
- {success ? ( -

Ваш пароль успешно изменен!

- ) : ( - "" - )}
) : ( diff --git a/src/styles/_success.scss b/src/styles/_success.scss index ce2b6d2..31469b1 100644 --- a/src/styles/_success.scss +++ b/src/styles/_success.scss @@ -15,11 +15,12 @@ h1 { font-size: 4rem; color: $base-green; + text-align: center; } } .wrapper { - width: 100px; + width: 10rem; margin: 4em auto 0; } @@ -38,3 +39,31 @@ stroke-dashoffset: 0; } } + +// MEDIA + +@media screen and (max-width: 900px) { + .success { + h1 { + font-size: 3rem; + padding: 0 2rem; + } + } + .wrapper { + width: 8rem; + margin: 4em auto 0; + } +} + +@media screen and (max-width: 500px) { + .success { + h1 { + font-size: 2.6rem; + padding: 0 2rem; + } + } + .wrapper { + width: 7rem; + margin: 4em auto 0; + } +} diff --git a/src/validators/ValidatePhoneNumber.js b/src/validators/ValidatePhoneNumber.js index 83cb53b..0ea4d4c 100644 --- a/src/validators/ValidatePhoneNumber.js +++ b/src/validators/ValidatePhoneNumber.js @@ -4,6 +4,9 @@ export const ValidatePhoneNumber = (number) => { const numberRegEx3 = /^([+])?\d{11}$/; const numberRegEx4 = /^([+])?\d{12}$/; const numberRegEx5 = /^([+])?\d{9}$/; + const numberRegEx6 = /^([+])?\d{6}$/; + const numberRegEx7 = /^([+])?\d{5}$/; + const numberRegEx8 = /^([+])?\d{4}$/; if (number.match(numberRegEx1)) { return true; } @@ -19,5 +22,14 @@ export const ValidatePhoneNumber = (number) => { if (number.match(numberRegEx5)) { return true; } + if (number.match(numberRegEx6)) { + return true; + } + if (number.match(numberRegEx7)) { + return true; + } + if (number.match(numberRegEx8)) { + return true; + } return false; };