diff options
Diffstat (limited to 'src/screens/onboarding/BasicInfoOnboarding.tsx')
-rw-r--r-- | src/screens/onboarding/BasicInfoOnboarding.tsx | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/src/screens/onboarding/BasicInfoOnboarding.tsx b/src/screens/onboarding/BasicInfoOnboarding.tsx index 8ddb74e1..2bfe449c 100644 --- a/src/screens/onboarding/BasicInfoOnboarding.tsx +++ b/src/screens/onboarding/BasicInfoOnboarding.tsx @@ -2,6 +2,7 @@ import AsyncStorage from '@react-native-community/async-storage'; import {useNavigation} from '@react-navigation/core'; import {RouteProp} from '@react-navigation/native'; import {StackNavigationProp} from '@react-navigation/stack'; +import { invalid } from 'moment'; import React, {useEffect, useState} from 'react'; import { Alert, @@ -38,7 +39,7 @@ import { ERROR_T_AND_C_NOT_ACCEPTED, } from '../../constants/strings'; import {OnboardingStackParams} from '../../routes'; -import {sendOtpStatusCode, sendRegister} from '../../services'; +import {sendOtpStatusCode, sendRegister, verifyExistingInformation} from '../../services'; import {BackgroundGradientType} from '../../types'; import {HeaderHeight, SCREEN_HEIGHT, SCREEN_WIDTH} from '../../utils'; @@ -63,12 +64,18 @@ const BasicInfoOnboarding: React.FC<BasicInfoOnboardingProps> = ({route}) => { const [currentStep, setCurrentStep] = useState(0); const [tcAccepted, setTCAccepted] = useState(false); const [passVisibility, setPassVisibility] = useState(false); + const [invalidWithError, setInvalidWithError] = useState("Please enter a valid ") const [autoCapitalize, setAutoCap] = useState< 'none' | 'sentences' | 'words' | 'characters' | undefined >('none'); const [fadeValue, setFadeValue] = useState<Animated.Value<number>>( new Animated.Value(0), ); + useEffect(() => { + console.log(invalidWithError) + setValid(false); + }, [invalidWithError]) + const fadeButtonValue = useValue<number>(0); const [form, setForm] = useState({ fname: '', @@ -91,6 +98,7 @@ const BasicInfoOnboarding: React.FC<BasicInfoOnboardingProps> = ({route}) => { }).start(); }; + useEffect(() => { const fade = async () => { Animated.timing(fadeValue, { @@ -284,9 +292,24 @@ const BasicInfoOnboarding: React.FC<BasicInfoOnboardingProps> = ({route}) => { } }; const step = formSteps[currentStep]; - const advance = () => { + useEffect(() => { + if(step.placeholder!== 'School Email') { + setInvalidWithError("Please enter a valid " + step.placeholder.toLowerCase()) + } + }, [step]) + const advance = async() => { setAttemptedSubmit(true); if (valid) { + if (step.placeholder === 'School Email') { + const verifiedInfo = await verifyExistingInformation(form.email, undefined); + if(!verifiedInfo) { + console.log("here"); + setInvalidWithError("Email is taken") + return; + } + } + console.log('shouldnt happen') + console.log("stepL: " + step.placeholder) setCurrentStep(currentStep + 1); setAttemptedSubmit(false); setValid(false); @@ -436,7 +459,7 @@ const BasicInfoOnboarding: React.FC<BasicInfoOnboardingProps> = ({route}) => { warning: styles.passWarning, }} valid={valid} - invalidWarning={`Please enter a valid ${step.placeholder.toLowerCase()}`} + invalidWarning={invalidWithError} attemptedSubmit={attemptedSubmit} /> <Animated.View style={{opacity: fadeButtonValue}}> |