From 7faeb487da4fac1e57d8d147da1e41cac16bb28d Mon Sep 17 00:00:00 2001 From: Ivan Chen Date: Fri, 26 Feb 2021 21:16:02 -0500 Subject: onboarding revamp done! --- .../onboarding/InvitationCodeVerification.tsx | 115 +++--- src/screens/onboarding/Login.tsx | 15 +- src/screens/onboarding/OnboardingStepOne.tsx | 263 +++++++++++++ src/screens/onboarding/OnboardingStepThree.tsx | 411 +++++++++++++++++++++ src/screens/onboarding/OnboardingStepTwo.tsx | 369 ++++++++++++++++++ src/screens/onboarding/PasswordReset.tsx | 1 + src/screens/onboarding/PasswordResetRequest.tsx | 29 +- src/screens/onboarding/PhoneVerification.tsx | 225 +++++++++++ src/screens/onboarding/Verification.tsx | 51 ++- src/screens/onboarding/WelcomeScreen.tsx | 7 +- src/screens/onboarding/index.ts | 4 + src/services/UserProfileService.ts | 45 ++- 12 files changed, 1413 insertions(+), 122 deletions(-) create mode 100644 src/screens/onboarding/OnboardingStepOne.tsx create mode 100644 src/screens/onboarding/OnboardingStepThree.tsx create mode 100644 src/screens/onboarding/OnboardingStepTwo.tsx create mode 100644 src/screens/onboarding/PhoneVerification.tsx (limited to 'src') diff --git a/src/screens/onboarding/InvitationCodeVerification.tsx b/src/screens/onboarding/InvitationCodeVerification.tsx index 903a9912..41d17f29 100644 --- a/src/screens/onboarding/InvitationCodeVerification.tsx +++ b/src/screens/onboarding/InvitationCodeVerification.tsx @@ -1,20 +1,7 @@ -import React from 'react'; -import {OnboardingStackParams} from '../../routes'; +import {RouteProp} from '@react-navigation/native'; import {StackNavigationProp} from '@react-navigation/stack'; - -import { - Background, - RegistrationWizard, - SubmitButton, - ArrowButton, - LoadingIndicator, -} from '../../components'; - -import { - TAGG_LIGHT_PURPLE, - VERIFY_INVITATION_CODE_ENDPOUNT, -} from '../../constants'; - +import React from 'react'; +import {Alert, KeyboardAvoidingView, StyleSheet, View} from 'react-native'; import {Text} from 'react-native-animatable'; import { CodeField, @@ -23,28 +10,35 @@ import { useClearByFocusCell, } from 'react-native-confirmation-code-field'; import { - StyleSheet, - View, - KeyboardAvoidingView, - Alert, - Platform, -} from 'react-native'; - -import {BackgroundGradientType} from '../../types'; + ArrowButton, + Background, + LoadingIndicator, + SubmitButton, +} from '../../components'; +import {VERIFY_INVITATION_CODE_ENDPOUNT} from '../../constants'; import { ERROR_DOUBLE_CHECK_CONNECTION, ERROR_INVALID_INVITATION_CODE, ERROR_INVLAID_CODE, ERROR_VERIFICATION_FAILED_SHORT, + SUCCESS_INVITATION_CODE, } from '../../constants/strings'; +import {OnboardingStackParams} from '../../routes'; +import {BackgroundGradientType} from '../../types'; +import {SCREEN_WIDTH} from '../../utils'; -type InvitationCodeVerificationScreenNavigationProp = StackNavigationProp< +type InvitationCodeVerificationRouteProp = RouteProp< + OnboardingStackParams, + 'InvitationCodeVerification' +>; +type InvitationCodeVerificationNavigationProp = StackNavigationProp< OnboardingStackParams, 'InvitationCodeVerification' >; interface InvitationCodeVerificationProps { - navigation: InvitationCodeVerificationScreenNavigationProp; + navigation: InvitationCodeVerificationNavigationProp; + route: InvitationCodeVerificationRouteProp; } /** @@ -53,6 +47,7 @@ interface InvitationCodeVerificationProps { */ const InvitationCodeVerification: React.FC = ({ + route, navigation, }) => { const [value, setValue] = React.useState(''); @@ -66,19 +61,28 @@ const InvitationCodeVerification: React.FC = ({ if (value.length === 6) { try { let verifyInviteCodeResponse = await fetch( - VERIFY_INVITATION_CODE_ENDPOUNT + value + '/', + VERIFY_INVITATION_CODE_ENDPOUNT + + value + + '/?user_id=' + + route.params.userId, { method: 'DELETE', }, ); if (verifyInviteCodeResponse.status === 200) { - navigation.navigate('RegistrationOne'); + navigation.navigate('Login'); + setTimeout(() => { + Alert.alert(SUCCESS_INVITATION_CODE); + }, 500); } else { Alert.alert(ERROR_INVALID_INVITATION_CODE); } } catch (error) { - Alert.alert(ERROR_VERIFICATION_FAILED_SHORT, ERROR_DOUBLE_CHECK_CONNECTION); + Alert.alert( + ERROR_VERIFICATION_FAILED_SHORT, + ERROR_DOUBLE_CHECK_CONNECTION, + ); return { name: 'Verification error', description: error, @@ -89,10 +93,6 @@ const InvitationCodeVerification: React.FC = ({ } }; - const navigateToAddWaitList = () => { - navigation.navigate('AddWaitlistUser'); - }; - const Footer = () => ( = ({ centered style={styles.container} gradientType={BackgroundGradientType.Light}> - - Enter the code - - Please enter the invitation code provided to you by us / your friend. - (Use all caps.) - + Enter Your Invitation Code = ({ accessibilityHint="Select this after entering your invitation code" onPress={handleInvitationCodeVerification} /> - - Don't have an invite? - - {' '} - Join the Waitlist - - + + You've been added to the waitlist! We'll notify you when you're at the + front of the line! +