feat: login and register, otp verify api calls added
This commit is contained in:
@@ -5,61 +5,79 @@ import { OtpVerifyForm } from './OtpVerifyForm';
|
||||
import { isNumeric } from '@/utils/regexes/isNumeric';
|
||||
import { CompleteSignUp } from './CompleteSignUp';
|
||||
import { EnterPasswordForm } from './EnterPasswordForm';
|
||||
import { getUserStatusByPhoneNumberOrEmail } from '../../api/authorizationAPI';
|
||||
import { UserStatus } from '../../types/userTypes';
|
||||
import type { CountryCode } from '@/types/commonTypes';
|
||||
import { VerifyPhoneNumber } from './VerifyPhoneNumber';
|
||||
|
||||
export const AuthenticationSteps = (): JSX.Element => {
|
||||
const [authMode, setAuthMode] = useState<AuthMode>('register');
|
||||
const [authType, setAuthType] = useState<AuthType>('phone');
|
||||
const [currentStep, setCurrentStep] = useState<
|
||||
| 'emailOrPassword'
|
||||
| 'emailOrPhone'
|
||||
| 'verify'
|
||||
| 'enterPassword'
|
||||
| 'addPhoneNumber'
|
||||
| 'addedPhoneNumberVerify'
|
||||
>('emailOrPassword');
|
||||
>('emailOrPhone');
|
||||
const [loginRegisterValue, setLoginRegisterValue] = useState<string>('');
|
||||
const [countryCode, setCountryCode] = useState<CountryCode>('+98');
|
||||
const [addedPhoneNumberValue, setAddedPhoneNumberValue] =
|
||||
useState<string>('');
|
||||
|
||||
const handleLoginRegister = (value: string) => {
|
||||
setLoginRegisterValue(value);
|
||||
const handleLoginRegister = (value: string, userStatus: UserStatus) => {
|
||||
setAuthType(isNumeric(value) ? 'phone' : 'email');
|
||||
|
||||
// TODO: after api: send to password if it has account and has password
|
||||
if (true) {
|
||||
setCurrentStep('enterPassword');
|
||||
} else {
|
||||
setCurrentStep('verify');
|
||||
switch (userStatus) {
|
||||
case UserStatus.NotRegistered:
|
||||
setAuthMode('register');
|
||||
setCurrentStep('verify');
|
||||
break;
|
||||
|
||||
case UserStatus.RegisteredWithoutPassword:
|
||||
setAuthMode('login');
|
||||
setCurrentStep('verify');
|
||||
|
||||
break;
|
||||
|
||||
case UserStatus.RegisteredWithPassword:
|
||||
setAuthMode('login');
|
||||
setCurrentStep('enterPassword');
|
||||
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
const handleOTPVerfied = (otpCode: string) => {
|
||||
if (authMode === 'register' && authType === 'email') {
|
||||
setCurrentStep('addPhoneNumber');
|
||||
}
|
||||
const handleOTPVerfied = (registeredWithoutPhoneNumber: boolean = false) => {
|
||||
// if (registeredWithoutPhoneNumber) {
|
||||
// setCurrentStep('addPhoneNumber');
|
||||
// }
|
||||
};
|
||||
|
||||
const handleEditValue = () => {
|
||||
setCurrentStep('emailOrPassword');
|
||||
setCurrentStep('emailOrPhone');
|
||||
};
|
||||
|
||||
const handleCompleteSignUp = (countryCode: string, value: string) => {
|
||||
setCurrentStep('addedPhoneNumberVerify');
|
||||
};
|
||||
|
||||
const handleCompleteSignUpOTPVerified = (otpCode: string) => {
|
||||
console.log(otpCode);
|
||||
const handleCompleteSignUpOTPVerified = () => {
|
||||
console.log('phoneNumberVerified');
|
||||
};
|
||||
|
||||
const handleCompleteSignUpEditValue = () => {
|
||||
setCurrentStep('emailOrPassword');
|
||||
setCurrentStep('emailOrPhone');
|
||||
};
|
||||
|
||||
const handleLoggedInWithPassowrd = () => {};
|
||||
|
||||
return (
|
||||
<>
|
||||
{currentStep === 'emailOrPassword' && (
|
||||
{currentStep === 'emailOrPhone' && (
|
||||
<LoginRegisterForm
|
||||
countryCode={countryCode}
|
||||
setCountryCode={setCountryCode}
|
||||
loginRegisterValue={loginRegisterValue}
|
||||
setLoginRegisterValue={setLoginRegisterValue}
|
||||
authType={authType}
|
||||
@@ -70,6 +88,7 @@ export const AuthenticationSteps = (): JSX.Element => {
|
||||
|
||||
{currentStep === 'verify' && (
|
||||
<OtpVerifyForm
|
||||
countryCode={countryCode}
|
||||
onOTPVerified={handleOTPVerfied}
|
||||
onEditValue={handleEditValue}
|
||||
authMode={authMode}
|
||||
@@ -97,12 +116,11 @@ export const AuthenticationSteps = (): JSX.Element => {
|
||||
)}
|
||||
|
||||
{currentStep === 'addedPhoneNumberVerify' && (
|
||||
<OtpVerifyForm
|
||||
onOTPVerified={handleCompleteSignUpOTPVerified}
|
||||
<VerifyPhoneNumber
|
||||
countryCode={countryCode}
|
||||
onEditValue={handleCompleteSignUpEditValue}
|
||||
authMode="login"
|
||||
authType="phone"
|
||||
value={addedPhoneNumberValue}
|
||||
onPhoneNumberVerified={handleCompleteSignUpOTPVerified}
|
||||
/>
|
||||
)}
|
||||
</>
|
||||
|
||||
Reference in New Issue
Block a user