diff options
| author | George Rusu <56009869+grusu6928@users.noreply.github.com> | 2020-10-27 12:13:13 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-27 15:13:13 -0400 |
| commit | 9c7a867c1851914322a4b60f20223ae06a31c661 (patch) | |
| tree | 7e8a70b2c5e5654240362146d76727991fd1ca97 /src/screens/onboarding/RegistrationTwo.tsx | |
| parent | e7a712038a17a759d09bf80c6945c89e060f7310 (diff) | |
[TMA263] Added Phone Verification UI (#74)
* [TMA263] Added Phone Verification UI
* include email field
Co-authored-by: george <grus6928@gmail.com>
Co-authored-by: hsalhab <husam_salhab@brown.edu>
Diffstat (limited to 'src/screens/onboarding/RegistrationTwo.tsx')
| -rw-r--r-- | src/screens/onboarding/RegistrationTwo.tsx | 48 |
1 files changed, 43 insertions, 5 deletions
diff --git a/src/screens/onboarding/RegistrationTwo.tsx b/src/screens/onboarding/RegistrationTwo.tsx index 515059f9..c0fde48d 100644 --- a/src/screens/onboarding/RegistrationTwo.tsx +++ b/src/screens/onboarding/RegistrationTwo.tsx @@ -21,7 +21,7 @@ import { Background, } from '../../components'; -import {nameRegex} from '../../constants'; +import {nameRegex, emailRegex} from '../../constants'; type RegistrationScreenTwoRouteProp = RouteProp< OnboardingStackParams, @@ -45,9 +45,10 @@ const RegistrationTwo: React.FC<RegistrationTwoProps> = ({ }) => { // refs for changing focus const lnameRef = useRef(); + const emailRef = useRef(); const params = route.params; - const email: string = params!.email; + const phone: string = params!.phone; /** * Handles focus change to the next input field. * @param field key for field to move focus onto @@ -58,6 +59,10 @@ const RegistrationTwo: React.FC<RegistrationTwoProps> = ({ const lnameField: any = lnameRef.current; lnameField.focus(); break; + case 'email': + const emailField: any = emailRef.current; + emailField.focus(); + break; default: return; } @@ -66,9 +71,11 @@ const RegistrationTwo: React.FC<RegistrationTwoProps> = ({ // registration form state const [form, setForm] = useState({ fname: '', - lname: '', + lname: '', + email: '', isValidFname: false, isValidLname: false, + isValidEmail: false, attemptedSubmit: false, token: '', }); @@ -97,6 +104,18 @@ const RegistrationTwo: React.FC<RegistrationTwoProps> = ({ }); }; + /* + * Handles changes to the email field value and verifies the input by updating state and running a validation function. + */ + const handleEmailUpdate = (email: string) => { + let isValidEmail: boolean = emailRegex.test(email); + setForm({ + ...form, + email, + isValidEmail, + }); + }; + /** * Handles a click on the "next" arrow button by navigating to RegistrationThree if First Name and Last Name are filled */ @@ -108,11 +127,12 @@ const RegistrationTwo: React.FC<RegistrationTwoProps> = ({ }); } try { - if (form.isValidFname && form.isValidLname) { + if (form.isValidFname && form.isValidLname && form.isValidEmail) { navigation.navigate('RegistrationThree', { firstName: form.fname, lastName: form.lname, - email: email, + email: form.email, + phone: phone, }); } else { setForm({...form, attemptedSubmit: false}); @@ -187,6 +207,24 @@ const RegistrationTwo: React.FC<RegistrationTwoProps> = ({ width={280} onSubmitEditing={goToRegisterThree} /> + <TaggInput + accessibilityHint="Enter your email." + accessibilityLabel="Email input field." + placeholder="Email" + autoCompleteType="email" + textContentType="emailAddress" + autoCapitalize="none" + returnKeyType="next" + keyboardType="email-address" + onChangeText={handleEmailUpdate} + blurOnSubmit={false} + ref={emailRef} + valid={form.isValidEmail} + invalidWarning={'Please enter a valid email address.'} + attemptedSubmit={form.attemptedSubmit} + width={280} + onSubmitEditing={goToRegisterThree} + /> </KeyboardAvoidingView> <Footer /> </Background> |
