parent
bd9386d81c
commit
06e09facfe
1 changed files with 41 additions and 19 deletions
|
@ -1,4 +1,4 @@
|
||||||
import React, {useState, useEffect} from 'react'
|
import React from 'react'
|
||||||
import {
|
import {
|
||||||
ActivityIndicator,
|
ActivityIndicator,
|
||||||
Keyboard,
|
Keyboard,
|
||||||
|
@ -33,25 +33,27 @@ export const CreateAccount = ({onPressBack}: {onPressBack: () => void}) => {
|
||||||
const {track, screen, identify} = useAnalytics()
|
const {track, screen, identify} = useAnalytics()
|
||||||
const pal = usePalette('default')
|
const pal = usePalette('default')
|
||||||
const store = useStores()
|
const store = useStores()
|
||||||
const [isProcessing, setIsProcessing] = useState<boolean>(false)
|
const [isProcessing, setIsProcessing] = React.useState<boolean>(false)
|
||||||
const [serviceUrl, setServiceUrl] = useState<string>(DEFAULT_SERVICE)
|
const [serviceUrl, setServiceUrl] = React.useState<string>(DEFAULT_SERVICE)
|
||||||
const [error, setError] = useState<string>('')
|
const [error, setError] = React.useState<string>('')
|
||||||
const [retryDescribeTrigger, setRetryDescribeTrigger] = useState<any>({})
|
const [retryDescribeTrigger, setRetryDescribeTrigger] = React.useState<any>(
|
||||||
const [serviceDescription, setServiceDescription] = useState<
|
{},
|
||||||
|
)
|
||||||
|
const [serviceDescription, setServiceDescription] = React.useState<
|
||||||
ServiceDescription | undefined
|
ServiceDescription | undefined
|
||||||
>(undefined)
|
>(undefined)
|
||||||
const [userDomain, setUserDomain] = useState<string>('')
|
const [userDomain, setUserDomain] = React.useState<string>('')
|
||||||
const [inviteCode, setInviteCode] = useState<string>('')
|
const [inviteCode, setInviteCode] = React.useState<string>('')
|
||||||
const [email, setEmail] = useState<string>('')
|
const [email, setEmail] = React.useState<string>('')
|
||||||
const [password, setPassword] = useState<string>('')
|
const [password, setPassword] = React.useState<string>('')
|
||||||
const [handle, setHandle] = useState<string>('')
|
const [handle, setHandle] = React.useState<string>('')
|
||||||
const [is13, setIs13] = useState<boolean>(false)
|
const [is13, setIs13] = React.useState<boolean>(false)
|
||||||
|
|
||||||
useEffect(() => {
|
React.useEffect(() => {
|
||||||
screen('CreateAccount')
|
screen('CreateAccount')
|
||||||
}, [screen])
|
}, [screen])
|
||||||
|
|
||||||
useEffect(() => {
|
React.useEffect(() => {
|
||||||
let aborted = false
|
let aborted = false
|
||||||
setError('')
|
setError('')
|
||||||
setServiceDescription(undefined)
|
setServiceDescription(undefined)
|
||||||
|
@ -81,18 +83,25 @@ export const CreateAccount = ({onPressBack}: {onPressBack: () => void}) => {
|
||||||
}
|
}
|
||||||
}, [serviceUrl, store.session, store.log, retryDescribeTrigger])
|
}, [serviceUrl, store.session, store.log, retryDescribeTrigger])
|
||||||
|
|
||||||
const onPressRetryConnect = () => setRetryDescribeTrigger({})
|
const onPressRetryConnect = React.useCallback(
|
||||||
|
() => setRetryDescribeTrigger({}),
|
||||||
|
[setRetryDescribeTrigger],
|
||||||
|
)
|
||||||
|
|
||||||
const onPressSelectService = () => {
|
const onPressSelectService = React.useCallback(() => {
|
||||||
store.shell.openModal({
|
store.shell.openModal({
|
||||||
name: 'server-input',
|
name: 'server-input',
|
||||||
initialService: serviceUrl,
|
initialService: serviceUrl,
|
||||||
onSelect: setServiceUrl,
|
onSelect: setServiceUrl,
|
||||||
})
|
})
|
||||||
Keyboard.dismiss()
|
Keyboard.dismiss()
|
||||||
}
|
}, [store, serviceUrl])
|
||||||
|
|
||||||
const onPressNext = async () => {
|
const onBlurInviteCode = React.useCallback(() => {
|
||||||
|
setInviteCode(inviteCode.trim())
|
||||||
|
}, [setInviteCode, inviteCode])
|
||||||
|
|
||||||
|
const onPressNext = React.useCallback(async () => {
|
||||||
if (!email) {
|
if (!email) {
|
||||||
return setError('Please enter your email.')
|
return setError('Please enter your email.')
|
||||||
}
|
}
|
||||||
|
@ -130,7 +139,19 @@ export const CreateAccount = ({onPressBack}: {onPressBack: () => void}) => {
|
||||||
setIsProcessing(false)
|
setIsProcessing(false)
|
||||||
setError(cleanError(errMsg))
|
setError(cleanError(errMsg))
|
||||||
}
|
}
|
||||||
}
|
}, [
|
||||||
|
serviceUrl,
|
||||||
|
userDomain,
|
||||||
|
inviteCode,
|
||||||
|
email,
|
||||||
|
password,
|
||||||
|
handle,
|
||||||
|
setError,
|
||||||
|
setIsProcessing,
|
||||||
|
store,
|
||||||
|
track,
|
||||||
|
identify,
|
||||||
|
])
|
||||||
|
|
||||||
const isReady = !!email && !!password && !!handle && is13
|
const isReady = !!email && !!password && !!handle && is13
|
||||||
return (
|
return (
|
||||||
|
@ -201,6 +222,7 @@ export const CreateAccount = ({onPressBack}: {onPressBack: () => void}) => {
|
||||||
autoFocus
|
autoFocus
|
||||||
value={inviteCode}
|
value={inviteCode}
|
||||||
onChangeText={setInviteCode}
|
onChangeText={setInviteCode}
|
||||||
|
onBlur={onBlurInviteCode}
|
||||||
editable={!isProcessing}
|
editable={!isProcessing}
|
||||||
/>
|
/>
|
||||||
</View>
|
</View>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue