diff --git a/src/screens/Login/LoginForm.tsx b/src/screens/Login/LoginForm.tsx index 96132ab20..7df3d433d 100644 --- a/src/screens/Login/LoginForm.tsx +++ b/src/screens/Login/LoginForm.tsx @@ -14,9 +14,9 @@ import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useRequestNotificationsPermission} from '#/lib/notifications/notifications' -import {isNetworkError} from '#/lib/strings/errors' -import {cleanError} from '#/lib/strings/errors' +import {cleanError, isNetworkError} from '#/lib/strings/errors' import {createFullHandle} from '#/lib/strings/handles' +import {isValidDomain} from '#/lib/strings/url-helpers' import {logger} from '#/logger' import {useSetHasCheckedForStarterPack} from '#/state/preferences/used-starter-packs' import {useSessionApi} from '#/state/session' @@ -86,7 +86,7 @@ export const LoginForm = ({ }, []) const onPressNext = async () => { - if (isProcessing) return + if (isProcessing || isResolvingService || serviceUrl === undefined) return Keyboard.dismiss() LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut) setError('') @@ -193,7 +193,7 @@ export const LoginForm = ({ Hosting provider {isResolvingService && ( @@ -230,7 +230,7 @@ export const LoginForm = ({ if (!id) return if ( id.startsWith('did:') || - (id.includes('.') && !id.includes('@')) + (!id.includes('@') && isValidDomain(id)) ) { debouncedResolveService(id) } @@ -373,7 +373,8 @@ export const LoginForm = ({ variant="solid" color="primary" size="large" - onPress={onPressNext}> + onPress={onPressNext} + disabled={isResolvingService || serviceUrl === undefined}> Next diff --git a/src/screens/Login/index.tsx b/src/screens/Login/index.tsx index 1d1f5cf1f..53b11def5 100644 --- a/src/screens/Login/index.tsx +++ b/src/screens/Login/index.tsx @@ -147,7 +147,7 @@ export const Login = ({onPressBack}: {onPressBack: () => void}) => { ) const debouncedResolveService = useMemo( - () => debounce(resolveIdentity, 800), + () => debounce(resolveIdentity, 400), [resolveIdentity], )