diff --git a/src/components/AuthBox/AuthBox.jsx b/src/components/AuthBox/AuthBox.jsx index ed5ca460..f1e0cf67 100644 --- a/src/components/AuthBox/AuthBox.jsx +++ b/src/components/AuthBox/AuthBox.jsx @@ -28,7 +28,7 @@ export const AuthBox = ({ title }) => { const [error, setError] = useState(null); const [modalError, setModalError] = useState(false); - const [modalReset, setModalReset] = useState(false) + const [modalReset, setModalReset] = useState(false); const [modalReg, setModalReg] = useState(false); const [showPassword, setShowPassword] = useState(false); @@ -122,7 +122,9 @@ export const AuthBox = ({ title }) => { > {isLoading ? : "Войти"} - setModalReset(true)}>Восстановить пароль + setModalReset(true)}> + Восстановить пароль + diff --git a/src/components/Modal/ModalResetPassword/ModalResetPassword.jsx b/src/components/Modal/ModalResetPassword/ModalResetPassword.jsx index 1dfd8a75..baed044a 100644 --- a/src/components/Modal/ModalResetPassword/ModalResetPassword.jsx +++ b/src/components/Modal/ModalResetPassword/ModalResetPassword.jsx @@ -5,146 +5,161 @@ import { apiRequest } from "@api/request"; import { useNotification } from "@hooks/useNotification"; import ModalLayout from "@components/Common/ModalLayout/ModalLayout"; + import arrow from "assets/icons/arrows/arrowCalendar.png"; import close from "assets/icons/close.png"; import "./modalResetPassword.scss"; export const ModalResetPassword = ({ active, setActive }) => { - const [step, setStep] = useState(false) - const [inputsValue, setInputsValue] = useState({ - email: "", - token: "", - password: "" + const [step, setStep] = useState(false); + const [inputsValue, setInputsValue] = useState({ + email: "", + token: "", + password: "", + }); + + const validateEmail = (email) => { + // регулярное выражение для проверки email + const re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; + + // возвращаем true, если email проходит проверку, и false, если нет + return re.test(email); + }; + + const resetInputsValue = () => { + setInputsValue({ + email: "", + token: "", + password: "", }); + }; - const validateEmail = (email) => { - // регулярное выражение для проверки email - const re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; - - // возвращаем true, если email проходит проверку, и false, если нет - return re.test(email); - }; - - const resetInputsValue = () => { - setInputsValue({ - email: "", - token: "", - password: "", + const { showNotification } = useNotification(); + const submitHandler = () => { + if (!validateEmail(inputsValue.email)) { + return showNotification({ + show: true, + text: "Введите коректный email", + type: "error", + }); + } + apiRequest("/register/request-password-reset", { + method: "POST", + data: { + email: inputsValue.email, + }, + }).then((data) => { + if (data) { + showNotification({ + show: true, + text: "Письмо отправлено Вам на почту", + type: "success", }); - }; - - const { showNotification } = useNotification(); - const submitHandler = () => { - if (!validateEmail(inputsValue.email)) { - return showNotification({ - show: true, - text: "Введите коректный email", - type: "error", - }); - } - apiRequest("/register/request-password-reset", { - method: "POST", - data: { - email: inputsValue.email, - }, - }).then((data) => { - if (data) { - showNotification({ - show: true, - text: "Письмо отправлено Вам на почту", - type: "success", - }); - setStep(true) - } - }); - }; - const resetPassword = () => { - if (!inputsValue.password || !inputsValue.token) { - return showNotification({ - show: true, - text: "Введите данные", - type: "error", - }); - } - apiRequest("/register/reset-password", { - method: "POST", - data: { - token : inputsValue.token, - password: inputsValue.password - }, - }).then(() => { - setActive(false) - resetInputsValue() - showNotification({ - show: true, - text: "Пароль изменён", - type: "success", - }); - }); - }; - return ( - -
- close setActive(false)} - /> -

Восстановление пароля

- {!step ? -
-
Введите email:
- - setInputsValue((prevValue) => ({ - ...prevValue, - email: e.target.value, - })) - } - placeholder="Email" - /> - -
- : -
- setStep(false)} className='resetPassword__email__arrow' /> -
Введите код подтверждения:
- - setInputsValue((prevValue) => ({ - ...prevValue, - token: e.target.value, - })) - } - placeholder="token" - /> -
Введите новый пароль:
- - setInputsValue((prevValue) => ({ - ...prevValue, - password: e.target.value, - })) - } - placeholder="password" - /> - -
- } -
-
- ); + setStep(true); + } + }); + }; + const resetPassword = () => { + if (!inputsValue.password || !inputsValue.token) { + return showNotification({ + show: true, + text: "Введите данные", + type: "error", + }); + } + apiRequest("/register/reset-password", { + method: "POST", + data: { + token: inputsValue.token, + password: inputsValue.password, + }, + }).then(() => { + setActive(false); + resetInputsValue(); + showNotification({ + show: true, + text: "Пароль изменён", + type: "success", + }); + }); + }; + return ( + +
+ close setActive(false)} + /> +

Восстановление пароля

+ {!step ? ( +
+
Введите email:
+ + setInputsValue((prevValue) => ({ + ...prevValue, + email: e.target.value, + })) + } + placeholder="Email" + /> + +
+ ) : ( +
+ setStep(false)} + className="resetPassword__email__arrow" + /> +
Введите код подтверждения:
+ + setInputsValue((prevValue) => ({ + ...prevValue, + token: e.target.value, + })) + } + placeholder="token" + /> +
Введите новый пароль:
+ + setInputsValue((prevValue) => ({ + ...prevValue, + password: e.target.value, + })) + } + placeholder="password" + /> + +
+ )} +
+
+ ); }; export default ModalResetPassword; diff --git a/src/components/Modal/Tracker/TicketFullScreen/TicketFullScreen.jsx b/src/components/Modal/Tracker/TicketFullScreen/TicketFullScreen.jsx index 5a8bb530..a7b6813b 100644 --- a/src/components/Modal/Tracker/TicketFullScreen/TicketFullScreen.jsx +++ b/src/components/Modal/Tracker/TicketFullScreen/TicketFullScreen.jsx @@ -729,7 +729,10 @@ export const TicketFullScreen = () => { )} - +

Вернуться на проект

arrow