rm old login code
This commit is contained in:
@@ -53,8 +53,6 @@ export const LoginForm = ({
|
|||||||
const {track} = useAnalytics()
|
const {track} = useAnalytics()
|
||||||
const t = useTheme()
|
const t = useTheme()
|
||||||
const [isProcessing, setIsProcessing] = useState<boolean>(false)
|
const [isProcessing, setIsProcessing] = useState<boolean>(false)
|
||||||
const [identifier, setIdentifier] = useState<string>(initialHandle)
|
|
||||||
const [password, setPassword] = useState<string>('')
|
|
||||||
const passwordInputRef = useRef<TextInput>(null)
|
const passwordInputRef = useRef<TextInput>(null)
|
||||||
const {_} = useLingui()
|
const {_} = useLingui()
|
||||||
const {login} = useSessionApi()
|
const {login} = useSessionApi()
|
||||||
@@ -64,69 +62,8 @@ export const LoginForm = ({
|
|||||||
track('Signin:PressedSelectService')
|
track('Signin:PressedSelectService')
|
||||||
}, [track])
|
}, [track])
|
||||||
|
|
||||||
const onPressNext = async () => {
|
const onPressNext = async () => {}
|
||||||
if (isProcessing) return
|
|
||||||
Keyboard.dismiss()
|
|
||||||
LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut)
|
|
||||||
setError('')
|
|
||||||
setIsProcessing(true)
|
|
||||||
|
|
||||||
try {
|
|
||||||
// try to guess the handle if the user just gave their own username
|
|
||||||
let fullIdent = identifier
|
|
||||||
if (
|
|
||||||
!identifier.includes('@') && // not an email
|
|
||||||
!identifier.includes('.') && // not a domain
|
|
||||||
serviceDescription &&
|
|
||||||
serviceDescription.availableUserDomains.length > 0
|
|
||||||
) {
|
|
||||||
let matched = false
|
|
||||||
for (const domain of serviceDescription.availableUserDomains) {
|
|
||||||
if (fullIdent.endsWith(domain)) {
|
|
||||||
matched = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!matched) {
|
|
||||||
fullIdent = createFullHandle(
|
|
||||||
identifier,
|
|
||||||
serviceDescription.availableUserDomains[0],
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO remove double login
|
|
||||||
await login(
|
|
||||||
{
|
|
||||||
service: serviceUrl,
|
|
||||||
identifier: fullIdent,
|
|
||||||
password,
|
|
||||||
},
|
|
||||||
'LoginForm',
|
|
||||||
)
|
|
||||||
} catch (e: any) {
|
|
||||||
const errMsg = e.toString()
|
|
||||||
LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut)
|
|
||||||
setIsProcessing(false)
|
|
||||||
if (errMsg.includes('Authentication Required')) {
|
|
||||||
logger.debug('Failed to login due to invalid credentials', {
|
|
||||||
error: errMsg,
|
|
||||||
})
|
|
||||||
setError(_(msg`Invalid username or password`))
|
|
||||||
} else if (isNetworkError(e)) {
|
|
||||||
logger.warn('Failed to login due to network error', {error: errMsg})
|
|
||||||
setError(
|
|
||||||
_(
|
|
||||||
msg`Unable to contact your service. Please check your Internet connection.`,
|
|
||||||
),
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
logger.warn('Failed to login', {error: errMsg})
|
|
||||||
setError(cleanError(errMsg))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const isReady = !!serviceDescription && !!identifier && !!password
|
|
||||||
return (
|
return (
|
||||||
<FormContainer testID="loginForm" title={<Trans>Sign in</Trans>}>
|
<FormContainer testID="loginForm" title={<Trans>Sign in</Trans>}>
|
||||||
<View>
|
<View>
|
||||||
@@ -139,84 +76,8 @@ export const LoginForm = ({
|
|||||||
onOpenDialog={onPressSelectService}
|
onOpenDialog={onPressSelectService}
|
||||||
/>
|
/>
|
||||||
</View>
|
</View>
|
||||||
<View>
|
|
||||||
<TextField.Label>
|
|
||||||
<Trans>Account</Trans>
|
|
||||||
</TextField.Label>
|
|
||||||
<View style={[a.gap_sm]}>
|
|
||||||
<TextField.Root>
|
|
||||||
<TextField.Icon icon={At} />
|
|
||||||
<TextField.Input
|
|
||||||
testID="loginUsernameInput"
|
|
||||||
label={_(msg`Username or email address`)}
|
|
||||||
autoCapitalize="none"
|
|
||||||
autoFocus
|
|
||||||
autoCorrect={false}
|
|
||||||
autoComplete="username"
|
|
||||||
returnKeyType="next"
|
|
||||||
textContentType="username"
|
|
||||||
onSubmitEditing={() => {
|
|
||||||
passwordInputRef.current?.focus()
|
|
||||||
}}
|
|
||||||
blurOnSubmit={false} // prevents flickering due to onSubmitEditing going to next field
|
|
||||||
value={identifier}
|
|
||||||
onChangeText={str =>
|
|
||||||
setIdentifier((str || '').toLowerCase().trim())
|
|
||||||
}
|
|
||||||
editable={!isProcessing}
|
|
||||||
accessibilityHint={_(
|
|
||||||
msg`Input the username or email address you used at signup`,
|
|
||||||
)}
|
|
||||||
/>
|
|
||||||
</TextField.Root>
|
|
||||||
|
|
||||||
<TextField.Root>
|
|
||||||
<TextField.Icon icon={Lock} />
|
|
||||||
<TextField.Input
|
|
||||||
testID="loginPasswordInput"
|
|
||||||
inputRef={passwordInputRef}
|
|
||||||
label={_(msg`Password`)}
|
|
||||||
autoCapitalize="none"
|
|
||||||
autoCorrect={false}
|
|
||||||
autoComplete="password"
|
|
||||||
returnKeyType="done"
|
|
||||||
enablesReturnKeyAutomatically={true}
|
|
||||||
secureTextEntry={true}
|
|
||||||
textContentType="password"
|
|
||||||
clearButtonMode="while-editing"
|
|
||||||
value={password}
|
|
||||||
onChangeText={setPassword}
|
|
||||||
onSubmitEditing={onPressNext}
|
|
||||||
blurOnSubmit={false} // HACK: https://github.com/facebook/react-native/issues/21911#issuecomment-558343069 Keyboard blur behavior is now handled in onSubmitEditing
|
|
||||||
editable={!isProcessing}
|
|
||||||
accessibilityHint={
|
|
||||||
identifier === ''
|
|
||||||
? _(msg`Input your password`)
|
|
||||||
: _(msg`Input the password tied to ${identifier}`)
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
<Button
|
|
||||||
testID="forgotPasswordButton"
|
|
||||||
onPress={onPressForgotPassword}
|
|
||||||
label={_(msg`Forgot password?`)}
|
|
||||||
accessibilityHint={_(msg`Opens password reset form`)}
|
|
||||||
variant="solid"
|
|
||||||
color="secondary"
|
|
||||||
style={[
|
|
||||||
a.rounded_sm,
|
|
||||||
// t.atoms.bg_contrast_100,
|
|
||||||
{marginLeft: 'auto', left: 6, padding: 6},
|
|
||||||
a.z_10,
|
|
||||||
]}>
|
|
||||||
<ButtonText>
|
|
||||||
<Trans>Forgot?</Trans>
|
|
||||||
</ButtonText>
|
|
||||||
</Button>
|
|
||||||
</TextField.Root>
|
|
||||||
</View>
|
|
||||||
</View>
|
|
||||||
<FormError error={error} />
|
<FormError error={error} />
|
||||||
<View style={[a.flex_row, a.align_center, a.pt_md]}>
|
<View style={[a.flex_row, a.align_center, a.justify_between, a.pt_md]}>
|
||||||
<Button
|
<Button
|
||||||
label={_(msg`Back`)}
|
label={_(msg`Back`)}
|
||||||
variant="solid"
|
variant="solid"
|
||||||
@@ -227,39 +88,16 @@ export const LoginForm = ({
|
|||||||
<Trans>Back</Trans>
|
<Trans>Back</Trans>
|
||||||
</ButtonText>
|
</ButtonText>
|
||||||
</Button>
|
</Button>
|
||||||
<View style={a.flex_1} />
|
|
||||||
{!serviceDescription && error ? (
|
|
||||||
<Button
|
<Button
|
||||||
testID="loginRetryButton"
|
label={_(msg`Back`)}
|
||||||
label={_(msg`Retry`)}
|
|
||||||
accessibilityHint={_(msg`Retries login`)}
|
|
||||||
variant="solid"
|
|
||||||
color="secondary"
|
|
||||||
size="medium"
|
|
||||||
onPress={onPressRetryConnect}>
|
|
||||||
{_(msg`Retry`)}
|
|
||||||
</Button>
|
|
||||||
) : !serviceDescription ? (
|
|
||||||
<>
|
|
||||||
<ActivityIndicator />
|
|
||||||
<Text style={[t.atoms.text_contrast_high, a.pl_md]}>
|
|
||||||
<Trans>Connecting...</Trans>
|
|
||||||
</Text>
|
|
||||||
</>
|
|
||||||
) : isReady ? (
|
|
||||||
<Button
|
|
||||||
label={_(msg`Next`)}
|
|
||||||
accessibilityHint={_(msg`Navigates to the next screen`)}
|
|
||||||
variant="solid"
|
variant="solid"
|
||||||
color="primary"
|
color="primary"
|
||||||
size="medium"
|
size="medium"
|
||||||
onPress={onPressNext}>
|
onPress={onPressBack}>
|
||||||
<ButtonText>
|
<ButtonText>
|
||||||
<Trans>Next</Trans>
|
<Trans>Login</Trans>
|
||||||
</ButtonText>
|
</ButtonText>
|
||||||
{isProcessing && <ButtonIcon icon={Loader} />}
|
|
||||||
</Button>
|
</Button>
|
||||||
) : undefined}
|
|
||||||
</View>
|
</View>
|
||||||
</FormContainer>
|
</FormContainer>
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user