import { FC, useState } from "react"; import CloseIcon from "@mui/icons-material/Close"; import { Box, Button, Dialog, IconButton, Typography, useMediaQuery, useTheme } from "@mui/material"; import InputTextfield from "@ui_kit/InputTextfield"; import PasswordInput from "@ui_kit/passwordInput"; import { useFormik } from "formik"; import { object, ref, string } from "yup"; import Logotip from "../Landing/images/icons/QuizLogo"; import { useNavigate } from "react-router-dom"; interface Values { email: string; password: string; repeatPassword: string; } const initialValues: Values = { email: "", password: "", repeatPassword: "", }; const validationSchema = object({ email: string().required("Поле обязательно").email("Введите корректный email"), password: string() .min(8, "Минимум 8 символов") .matches(/^[.,:;-_+\d\w]+$/, "Некорректные символы") .required("Поле обязательно"), repeatPassword: string() .oneOf([ref("password"), undefined], "Пароли не совпадают") .required("Повторите пароль"), }); export const Restore: FC = () => { const [isDialogOpen, setIsDialogOpen] = useState(true); const navigate = useNavigate(); const theme = useTheme(); const upMd = useMediaQuery(theme.breakpoints.up("md")); const formik = useFormik({ initialValues, validationSchema, onSubmit: (values) => { console.log(values); }, }); function handleClose() { setIsDialogOpen(false); setTimeout(() => navigate("/"), theme.transitions.duration.leavingScreen); } return ( Восстановление пароля ); };