import React from "react"; import { ButtonUi, ButtonUiType } from "../../../../shared/UI/ButtonUi"; import Form from 'react-bootstrap/Form'; import { useFormik } from 'formik'; import * as yup from 'yup'; import { AuthResponsePayload } from '../../../../types'; import { api } from "../../../../query/query"; import { setCookie } from "typescript-cookie"; import styles from "./authLoginForm.module.scss"; export const AuthLoginFormUi = () => { const schema = yup.object().shape({ username: yup.string() .min(3, 'Минимум 3 символа!') .max(16, 'Максимум 16 символов!') .required('Это поле обязательное.'), password: yup.string().required('Это обязательное поле.').min(6, 'Минимум 6 символов!'), }); const { handleSubmit, handleChange, handleBlur, errors, values, setFieldError } = useFormik({ initialValues: { username: '', password: '', }, validationSchema: schema, onSubmit: async (values): Promise => { return await api.post('/authorization', { username: values.username, password: values.password }).then((res) => { if (res.data[0]) { setFieldError('username', res.data[0]) setFieldError('password', res.data[0]) } else { setCookie('authToken', res.data!.authToken) setCookie('refreshToken', res.data!.refreshToken) window.location.replace("/auction") } return res.data as AuthResponsePayload }) }, }) return (
{errors.username} {errors.password} ) }