import { FC } from 'react' import Input from '../../../components/Input' import { useTranslation } from 'react-i18next' import { LoginType } 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 { isEmail } from '../../../config/func' import { useCheckHasAccount, useLoginWithOtp } from '../hooks/useAuthData' import { toast } from '../../../components/Toast'; import { ErrorType } from '../../../helpers/types' const LoginStep1: FC = () => { const { t } = useTranslation('global') const { setPhone, phone, setStepLogin, setEmail } = useAuthStore() const loginWithOtp = useLoginWithOtp() const checkHasAccount = useCheckHasAccount() const formik = useFormik({ initialValues: { phone_email: phone, }, validationSchema: Yup.object({ phone_email: Yup.string() .required(t('errors.required')) }), onSubmit(values) { if (isEmail(values.phone_email)) { setEmail(values.phone_email) checkHasAccount.mutate({ email: values.phone_email }, { onSuccess() { setStepLogin(2) }, onError(error: ErrorType) { toast(error?.response?.data?.error?.message[0], 'error') }, }) } else { setPhone(values.phone_email) loginWithOtp.mutate({ phone: values.phone_email }, { onSuccess() { setStepLogin(2) toast(t('auth.otp_sent'), 'success') }, onError(error: ErrorType) { toast(error?.response?.data?.error?.message[0], 'error') }, }) } }, }) return (

{t('auth.welcome')}

{t('auth.enter_info_login')}

{ formik.touched.phone_email && formik.errors.phone_email && }
) } export default LoginStep1