import React from 'react' import { ActivityIndicator, StyleSheet, TouchableWithoutFeedback, View, } from 'react-native' import { CreateAccountState, CreateAccountDispatch, requestVerificationCode, } from './state' import {Text} from 'view/com/util/text/Text' import {StepHeader} from './StepHeader' import {s} from 'lib/styles' import {usePalette} from 'lib/hooks/usePalette' import {TextInput} from '../util/TextInput' import {Button} from '../../util/forms/Button' import {ErrorMessage} from 'view/com/util/error/ErrorMessage' import {isWeb} from 'platform/detection' import {Trans, msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' import parsePhoneNumber from 'libphonenumber-js' export function Step2({ uiState, uiDispatch, }: { uiState: CreateAccountState uiDispatch: CreateAccountDispatch }) { const pal = usePalette('default') const {_} = useLingui() const {isMobile} = useWebMediaQueries() const onPressRequest = React.useCallback(() => { if ( uiState.verificationPhone.length >= 9 && parsePhoneNumber(uiState.verificationPhone, 'US') ) { requestVerificationCode({uiState, uiDispatch, _}) } else { uiDispatch({ type: 'set-error', value: _( msg`There's something wrong with this number. Please include your country and/or area code!`, ), }) } }, [uiState, uiDispatch, _]) const onPressRetry = React.useCallback(() => { uiDispatch({type: 'set-has-requested-verification-code', value: false}) }, [uiDispatch]) const phoneNumberFormatted = React.useMemo( () => uiState.hasRequestedVerificationCode ? parsePhoneNumber( uiState.verificationPhone, 'US', )?.formatInternational() : '', [uiState.hasRequestedVerificationCode, uiState.verificationPhone], ) return ( {!uiState.hasRequestedVerificationCode ? ( <> Phone number uiDispatch({type: 'set-verification-phone', value}) } accessibilityLabel={_(msg`Email`)} accessibilityHint={_( msg`Input phone number for SMS verification`, )} accessibilityLabelledBy="phoneNumber" keyboardType="phone-pad" autoCapitalize="none" autoComplete="tel" autoCorrect={false} autoFocus={true} /> Please enter a phone number that can receive SMS text messages. {uiState.isProcessing ? ( ) : (