import styles from "./ResetComponent.module.css"; import { useState, type ReactElement, type SubmitEvent } from "react"; import { Link, useNavigate } from "react-router-dom"; import { requestPasswordReset } from "../../../api/ResetAPI/Reset"; export function Reset():ReactElement { const navigate = useNavigate(); const [email, setEmail] = useState(""); const [errors, setErrors] = useState<{ email?: string;}>({}); const validateEmail = (value: string) => { if (!value) return "Введите email"; if (!/^\S+@\S+\.\S+$/.test(value)) return "Некорректный email"; return undefined; }; const handleSubmit = async (e: SubmitEvent) => { e.preventDefault(); const next = { email: validateEmail(email), }; setErrors(next); if (next.email) return; try { await requestPasswordReset(email); navigate("/"); } catch (err) { console.error(err); setErrors({ email: "Ошибка, попробуйте позже" }); } }; return ( <>

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

Введите Email, и мы отправим на него новый пароль

setEmail(e.target.value)} onBlur={() => setErrors((p) => ({ ...p, email: validateEmail(email) }))} placeholder="Email" aria-invalid={!!errors.email} className={errors.email ? styles.inputError : undefined} /> {errors.email &&

{errors.email}

}
Вернуться ко входу
); }