From 3cf7a6af525656142f92f2b9fa15bb4f91678e07 Mon Sep 17 00:00:00 2001 From: himanshu-kansal Date: Sat, 13 May 2023 13:40:13 +0530 Subject: [PATCH] TP-28528 | Login Flow update --- src/action/authActions.ts | 9 +++++++-- src/components/utlis/apiHelper.ts | 2 +- src/screens/login/OtpText.tsx | 6 ++++-- src/screens/login/index.tsx | 10 +++++++--- 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/action/authActions.ts b/src/action/authActions.ts index 5db2bc67..c50550ea 100644 --- a/src/action/authActions.ts +++ b/src/action/authActions.ts @@ -28,6 +28,7 @@ import { GoogleSignin } from '@react-native-google-signin/google-signin'; export interface GenerateOTPPayload { phoneNumber: string; + otpToken?: string; } export interface VerifyOTPPayload { @@ -44,12 +45,16 @@ export interface ImpersonationPayload { } export const generateOTP = - ({ phoneNumber }: GenerateOTPPayload, isResendOTP?: boolean) => + ({ phoneNumber, otpToken }: GenerateOTPPayload, isResendOTP?: boolean) => (dispatch: Dispatch) => { const url = getApiUrl(ApiKeys.GENERATE_OTP); dispatch(setFormLoading(true)); axiosInstance - .post(url, { phoneNumber: Number(phoneNumber) }, { headers: { donotHandleError: true } }) + .post( + url, + { phoneNumber: Number(phoneNumber), otpToken }, + { headers: { donotHandleError: true } } + ) .then((response) => { if (response.status === 200) { if (response?.data?.data?.otpToken) { diff --git a/src/components/utlis/apiHelper.ts b/src/components/utlis/apiHelper.ts index 0f2a3560..61e93f41 100644 --- a/src/components/utlis/apiHelper.ts +++ b/src/components/utlis/apiHelper.ts @@ -46,7 +46,7 @@ export enum ApiKeys { } export const API_URLS: Record = {} as Record; -API_URLS[ApiKeys.GENERATE_OTP] = '/auth/otp/generate'; +API_URLS[ApiKeys.GENERATE_OTP] = '/auth/request-otp'; API_URLS[ApiKeys.VERIFY_OTP] = '/auth/otp/verify'; API_URLS[ApiKeys.ALL_CASES] = '/cases/all-cases'; API_URLS[ApiKeys.CASE_DETAIL] = '/cases/get-cases'; diff --git a/src/screens/login/OtpText.tsx b/src/screens/login/OtpText.tsx index f6384c80..8b092e4a 100644 --- a/src/screens/login/OtpText.tsx +++ b/src/screens/login/OtpText.tsx @@ -20,13 +20,15 @@ const OtpText: React.FC = ({ resetOtp }) => { const [countDownTimeLeft, setCountDownTimeLeft] = useState(RESEND_OTP_TIME); const dispatch = useAppDispatch(); - const { phoneNumber, verifyOTPError } = useSelector((state: RootState) => state.loginInfo); + const { phoneNumber, verifyOTPError, otpToken } = useSelector( + (state: RootState) => state.loginInfo + ); const handleResendOTP = () => { setCountDownComplete(false); setCountDownTimeLeft(RESEND_OTP_TIME); dispatch(resetVerifyOTPError()); - dispatch(generateOTP({ phoneNumber }, true)); + dispatch(generateOTP({ phoneNumber, otpToken }, true)); resetOtp(); }; diff --git a/src/screens/login/index.tsx b/src/screens/login/index.tsx index f3c1f9a5..3efea638 100644 --- a/src/screens/login/index.tsx +++ b/src/screens/login/index.tsx @@ -49,9 +49,9 @@ function Login() { formState: { isValid }, } = useForm(); const dispatch = useAppDispatch(); - const { phoneNumber, OTPError, isLoading, deviceId } = useSelector((state: RootState) => ({ - deviceId: state.user.deviceId, + const { phoneNumber, OTPError, isLoading, otpToken } = useSelector((state: RootState) => ({ phoneNumber: state.loginInfo.phoneNumber, + otpToken: state.loginInfo.otpToken, OTPError: state.loginInfo.OTPError, isLoading: state.loginInfo.isLoading, })); @@ -68,8 +68,12 @@ function Login() { }, []); const handleGenerateOTP = (data: GenerateOTPPayload) => { + let payload = { + ...data, + otpToken: data.phoneNumber === phoneNumber ? otpToken : undefined, + }; addClickstreamEvent(CLICKSTREAM_EVENT_NAMES.AV_LOGIN_SCREEN_SEND_OTP_CLICKED); - dispatch(generateOTP(data)); + dispatch(generateOTP(payload)); }; const onPressGoogle = async () => {