diff --git a/src/pages/Landing/HeaderLanding.tsx b/src/pages/Landing/HeaderLanding.tsx index 6eb1381c..95105a06 100644 --- a/src/pages/Landing/HeaderLanding.tsx +++ b/src/pages/Landing/HeaderLanding.tsx @@ -15,13 +15,9 @@ export default function Component() { const theme = useTheme(); const isMobile = useMediaQuery(theme.breakpoints.down(600)); const isTablet = useMediaQuery(theme.breakpoints.down(1000)); - const [select, setSelect] = React.useState(0); const userId = useUserStore((state) => state.userId); - const navigate = useNavigate(); const location = useLocation(); - const onClick = () => (userId ? navigate("/list") : navigate("/signin")); - return ( */} - {/* + + + + + + + + Вход в личный кабинет + + + + + {/* Забыли пароль? */} - - Вы еще не присоединились? - - - Регистрация - - - Забыли пароль - - - - - - ); + + Вы еще не присоединились? + + + Регистрация + + + Забыли пароль + + + + + + ); } diff --git a/src/pages/auth/Signup.tsx b/src/pages/auth/Signup.tsx index c0e1f93b..3f1a0262 100644 --- a/src/pages/auth/Signup.tsx +++ b/src/pages/auth/Signup.tsx @@ -12,210 +12,215 @@ import { Link as RouterLink, useLocation, useNavigate } from "react-router-dom"; import { object, ref, string } from "yup"; interface Values { - email: string; - password: string; - repeatPassword: string; + email: string; + password: string; + repeatPassword: string; } const initialValues: Values = { - email: "", - password: "", - repeatPassword: "", + 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("Повторите пароль"), + email: string().required("Поле обязательно").email("Введите корректный email"), + password: string() + .min(8, "Минимум 8 символов") + .matches(/^[.,:;-_+\d\w]+$/, "Некорректные символы") + .required("Поле обязательно"), + repeatPassword: string() + .oneOf([ref("password"), undefined], "Пароли не совпадают") + .required("Повторите пароль"), }); export default function SignupDialog() { - const [isDialogOpen, setIsDialogOpen] = useState(true); - const user = useUserStore((state) => state.user); - const theme = useTheme(); - const upMd = useMediaQuery(theme.breakpoints.up("md")); - const location = useLocation(); + const [isDialogOpen, setIsDialogOpen] = useState(true); + const user = useUserStore((state) => state.user); + const theme = useTheme(); + const upMd = useMediaQuery(theme.breakpoints.up("md")); + const location = useLocation(); - const navigate = useNavigate(); - const formik = useFormik({ - initialValues, - validationSchema, - onSubmit: async (values, formikHelpers) => { - const [registerResponse, registerError] = await register(values.email.trim(), values.password.trim(), "+7"); + const navigate = useNavigate(); + const formik = useFormik({ + initialValues, + validationSchema, + onSubmit: async (values, formikHelpers) => { + const [registerResponse, registerError] = await register(values.email.trim(), values.password.trim(), "+7"); - formikHelpers.setSubmitting(false); + formikHelpers.setSubmitting(false); - if (registerError) { - return enqueueSnackbar(registerError); - } + if (registerError) { + return enqueueSnackbar(registerError); + } - if (registerResponse) { - setUserId(registerResponse._id); - } - }, - }); - - useEffect( - function redirectIfSignedIn() { - if (user) navigate("/list", { replace: true }); - }, - [navigate, user] - ); - - function handleClose() { - setIsDialogOpen(false); - setTimeout(() => navigate("/"), theme.transitions.duration.leavingScreen); - } - - return ( - - - - - - - - - - Регистрация - - - - - + }); - navigate("/"), theme.transitions.duration.leavingScreen); + } + + return ( + - Вход в личный кабинет - - - Забыли пароль - - - - ); + + + + + + + + + Регистрация + + + + + + + + Вход в личный кабинет + + + Забыли пароль + + + + ); } diff --git a/src/pages/startPage/Restore.tsx b/src/pages/startPage/Restore.tsx index 31cc8ad3..2769338a 100644 --- a/src/pages/startPage/Restore.tsx +++ b/src/pages/startPage/Restore.tsx @@ -1,183 +1,195 @@ import { FC, useState } from "react"; import CloseIcon from "@mui/icons-material/Close"; -import { Box, Button, Dialog, IconButton, Typography, useMediaQuery, useTheme } from "@mui/material"; +import { Box, Button, Dialog, IconButton, Link, 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"; +import { useNavigate, Link as RouterLink, useLocation } from "react-router-dom"; interface Values { - email: string; - password: string; - repeatPassword: string; + email: string; + password: string; + repeatPassword: string; } const initialValues: Values = { - email: "", - password: "", - repeatPassword: "", + 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("Повторите пароль"), + 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 [isDialogOpen, setIsDialogOpen] = useState(true); + const navigate = useNavigate(); + const theme = useTheme(); + const upMd = useMediaQuery(theme.breakpoints.up("md")); + const location = useLocation(); - const formik = useFormik({ - initialValues, - validationSchema, - onSubmit: (values) => { - }, - }); - - function handleClose() { - setIsDialogOpen(false); - setTimeout(() => navigate("/"), theme.transitions.duration.leavingScreen); - } - - return ( - ({ + initialValues, + validationSchema, + onSubmit: (values) => { }, - }} - slotProps={{ - backdrop: { - style: { - backgroundColor: "rgb(0 0 0 / 0.7)", - }, - }, - }} - > - - navigate("/"), theme.transitions.duration.leavingScreen); + } + + return ( + - - - - - - - Восстановление пароля - - - - - - - - ); + + + + + + + + + Восстановление пароля + + + + + + + У меня уже есть аккаунт + + + + ); };