import { type FC } from 'react' import Input from '../../../components/Input' import { useTranslation } from 'react-i18next' import { type LoginWithPasswordType } from '../types/AuthTypes' import { useFormik } from 'formik' import * as Yup from 'yup' import { useAuthStore } from '../store/AuthStore' import Error from '../../../components/Error' import Button from '../../../components/Button' import { useLoginWithPassword } from '../hooks/useAuthData' import { toast } from 'react-toastify' import { type ErrorType } from '../../../helpers/types' import { setRefreshToken, setToken } from '../../../config/func' import { Pages } from '../../../config/Pages' const LoginStep1: FC = () => { const { t } = useTranslation('global') const { setEmail } = useAuthStore() const loginWithPassword = useLoginWithPassword() const formik = useFormik({ initialValues: { email: '', password: '', }, validationSchema: Yup.object({ email: Yup.string() .email(t('errors.invalid_email')) .required(t('errors.required')), password: Yup.string() .required(t('errors.required')) }), onSubmit(values) { setEmail(values.email) loginWithPassword.mutate(values, { onSuccess(data) { if (data?.results?.accessToken?.token && data?.results?.refreshToken?.token) { setToken(data.results.accessToken.token) setRefreshToken(data.results.refreshToken.token) window.location.href = Pages.dashboard } }, onError(error: ErrorType) { toast.error(error?.response?.data?.error?.message[0]) }, }) }, }) return (

{t('auth.welcome')}

{t('auth.enter_info_login')}

{ formik.touched.email && formik.errors.email && } { formik.touched.password && formik.errors.password && }
) } export default LoginStep1