From 4bc6168246f4e7e11e7d90569edf9223b7fb87d5 Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Tue, 7 Jul 2026 10:55:46 +0330 Subject: [PATCH] conditioins in login --- src/pages/auth/components/LoginStep1.tsx | 195 +++++++++++------------ 1 file changed, 96 insertions(+), 99 deletions(-) diff --git a/src/pages/auth/components/LoginStep1.tsx b/src/pages/auth/components/LoginStep1.tsx index 2eac706..ddfb90f 100644 --- a/src/pages/auth/components/LoginStep1.tsx +++ b/src/pages/auth/components/LoginStep1.tsx @@ -1,100 +1,99 @@ -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 { ErrorType } from '../../../helpers/types' -import { toast } from '../../../components/Toast' -import { ArrowLeft } from 'iconsax-react' -import { Link } from 'react-router-dom' -import { Pages } from '../../../config/Pages' +import { useFormik } from "formik"; +import { ArrowLeft } from "iconsax-react"; +import { FC } from "react"; +import { useTranslation } from "react-i18next"; +import { Link } from "react-router-dom"; +import * as Yup from "yup"; +import Button from "../../../components/Button"; +import Error from "../../../components/Error"; +import Input from "../../../components/Input"; +import { toast } from "../../../components/Toast"; +import { isEmail } from "../../../config/func"; +import { Pages } from "../../../config/Pages"; +import { ErrorType } from "../../../helpers/types"; +import { useCheckHasAccount, useLoginWithOtp } from "../hooks/useAuthData"; +import { useAuthStore } from "../store/AuthStore"; +import { LoginType } from "../types/AuthTypes"; const LoginStep1: FC = () => { + const { t } = useTranslation("global"); + const { setPhone, phone, setStepLogin, setEmail } = useAuthStore(); + const loginWithOtp = useLoginWithOtp(); + const checkHasAccount = useCheckHasAccount(); - 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"); + }, + }, + ); + } + }, + }); - 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")}

+
- return ( -
-
-

- {t('auth.welcome')} -

-

- {t('auth.enter_info_login')} -

-
+
+ -
- + {formik.touched.phone_email && formik.errors.phone_email && } +
- { - formik.touched.phone_email && formik.errors.phone_email && - - } + -
+
+ ); +}; -export default LoginStep1 \ No newline at end of file +export default LoginStep1;