import { useNavigate } from "react-router-dom"; import { enqueueSnackbar } from "notistack"; import { useTheme } from "@mui/material/styles"; import { Formik, Field, Form, FormikHelpers } from "formik"; import { Link } from "react-router-dom"; import { Box, Checkbox, Typography, FormControlLabel, Button, } from "@mui/material"; import Logo from "@pages/Logo"; import OutlinedInput from "@kitUI/outlinedInput"; import EmailOutlinedIcon from "@mui/icons-material/EmailOutlined"; import LockOutlinedIcon from "@mui/icons-material/LockOutlined"; import { signin } from "@root/api/auth"; interface Values { email: string; password: string; } function validate(values: Values) { const errors = {} as any; if (!values.email) { errors.email = "Обязательное поле"; } else if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(values.email)) { errors.email = "Неверный формат эл. почты"; } if (!values.password) { errors.password = "Введите пароль"; } if (values.password && !/^[\S]{8,25}$/i.test(values.password)) { errors.password = "Invalid password"; } return errors; } const SigninForm = () => { const theme = useTheme(); const navigate = useNavigate(); const initialValues: Values = { email: "", password: "", }; const onSignFormSubmit = async ( values: Values, formikHelpers: FormikHelpers ) => { formikHelpers.setSubmitting(true); const [_, signinError] = await signin(values.email, values.password); formikHelpers.setSubmitting(false); if (signinError) { return enqueueSnackbar(signinError); } navigate("/users"); }; return ( {(props) => (
*": { marginTop: "15px", }, }} > Добро пожаловать Мы рады что вы выбрали нас! *": { marginRight: "10px" }, }} > {props.touched.email && props.errors.email} } /> *": { marginRight: "10px" }, }} > {props.touched.password && props.errors.password} } /> } label="Запомнить этот компьютер" /> Забыли пароль? У вас нет аккаунта?  Зарегестрируйтесь
)}
); }; export default SigninForm;