diff --git a/native/account/registration/existing-ethereum-account.react.js b/native/account/registration/existing-ethereum-account.react.js --- a/native/account/registration/existing-ethereum-account.react.js +++ b/native/account/registration/existing-ethereum-account.react.js @@ -4,10 +4,8 @@ import { Text, View } from 'react-native'; import { setDataLoadedActionType } from 'lib/actions/client-db-store-actions.js'; -import { legacySiweAuthActionTypes } from 'lib/actions/siwe-actions.js'; import { useENSName } from 'lib/hooks/ens-cache.js'; import { useWalletLogIn } from 'lib/hooks/login-hooks.js'; -import { createLoadingStatusSelector } from 'lib/selectors/loading-selectors.js'; import type { SIWEResult } from 'lib/types/siwe-types.js'; import { useDispatch } from 'lib/utils/redux-utils.js'; import { usingCommServicesAccessToken } from 'lib/utils/services-utils.js'; @@ -18,16 +16,11 @@ import RegistrationContentContainer from './registration-content-container.react.js'; import type { RegistrationNavigationProp } from './registration-navigator.react.js'; import type { NavigationRoute } from '../../navigation/route-names.js'; -import { useSelector } from '../../redux/redux-utils.js'; import { useStyles } from '../../themes/colors.js'; import { UnknownErrorAlertDetails } from '../../utils/alert-messages.js'; import Alert from '../../utils/alert.js'; import { useLegacySIWEServerCall } from '../siwe-hooks.js'; -const legacySiweAuthLoadingStatusSelector = createLoadingStatusSelector( - legacySiweAuthActionTypes, -); - export type ExistingEthereumAccountParams = SIWEResult; type Props = { @@ -38,49 +31,41 @@ const legacySiweServerCall = useLegacySIWEServerCall(); const walletLogIn = useWalletLogIn(); + const [logInPending, setLogInPending] = React.useState(false); + const { params } = props.route; const dispatch = useDispatch(); const onProceedToLogIn = React.useCallback(async () => { - if (usingCommServicesAccessToken) { - try { + if (logInPending) { + return; + } + setLogInPending(true); + try { + if (usingCommServicesAccessToken) { await walletLogIn(params.address, params.message, params.signature); - } catch (e) { - Alert.alert( - UnknownErrorAlertDetails.title, - UnknownErrorAlertDetails.message, - [{ text: 'OK' }], - { - cancelable: false, - }, - ); - throw e; - } - } else { - try { + } else { await legacySiweServerCall({ ...params, doNotRegister: true }); - } catch (e) { - Alert.alert( - UnknownErrorAlertDetails.title, - UnknownErrorAlertDetails.message, - [{ text: 'OK' }], - { - cancelable: false, + dispatch({ + type: setDataLoadedActionType, + payload: { + dataLoaded: true, }, - ); - throw e; + }); } - dispatch({ - type: setDataLoadedActionType, - payload: { - dataLoaded: true, + } catch (e) { + Alert.alert( + UnknownErrorAlertDetails.title, + UnknownErrorAlertDetails.message, + [{ text: 'OK' }], + { + cancelable: false, }, - }); + ); + throw e; + } finally { + setLogInPending(false); } - }, [legacySiweServerCall, walletLogIn, params, dispatch]); - - const legacySiweAuthCallLoading = useSelector( - state => legacySiweAuthLoadingStatusSelector(state) === 'loading', - ); + }, [logInPending, legacySiweServerCall, walletLogIn, params, dispatch]); const { address } = params; const walletIdentifier = useENSName(address); @@ -112,7 +97,7 @@