Changeset View
Changeset View
Standalone View
Standalone View
native/account/registration/connect-ethereum.react.js
Show All 13 Lines | |||||
} from 'lib/utils/action-utils.js'; | } from 'lib/utils/action-utils.js'; | ||||
import RegistrationButtonContainer from './registration-button-container.react.js'; | import RegistrationButtonContainer from './registration-button-container.react.js'; | ||||
import RegistrationButton from './registration-button.react.js'; | import RegistrationButton from './registration-button.react.js'; | ||||
import RegistrationContainer from './registration-container.react.js'; | import RegistrationContainer from './registration-container.react.js'; | ||||
import RegistrationContentContainer from './registration-content-container.react.js'; | import RegistrationContentContainer from './registration-content-container.react.js'; | ||||
import type { RegistrationNavigationProp } from './registration-navigator.react.js'; | import type { RegistrationNavigationProp } from './registration-navigator.react.js'; | ||||
import type { CoolOrNerdMode } from './registration-types.js'; | import type { CoolOrNerdMode } from './registration-types.js'; | ||||
import type { NavigationRoute } from '../../navigation/route-names.js'; | import { | ||||
type NavigationRoute, | |||||
ExistingEthereumAccountRouteName, | |||||
} from '../../navigation/route-names.js'; | |||||
import { useStyles } from '../../themes/colors.js'; | import { useStyles } from '../../themes/colors.js'; | ||||
import EthereumLogoDark from '../../vectors/ethereum-logo-dark.react.js'; | import EthereumLogoDark from '../../vectors/ethereum-logo-dark.react.js'; | ||||
import SIWEPanel from '../siwe-panel.react.js'; | import SIWEPanel from '../siwe-panel.react.js'; | ||||
export type ConnectEthereumParams = { | export type ConnectEthereumParams = { | ||||
+userSelections: { | +userSelections: { | ||||
+coolOrNerdMode: CoolOrNerdMode, | +coolOrNerdMode: CoolOrNerdMode, | ||||
+keyserverUsername: string, | +keyserverUsername: string, | ||||
▲ Show 20 Lines • Show All 75 Lines • ▼ Show 20 Lines | function ConnectEthereum(props: Props): React.Node { | ||||
const onSkip = React.useCallback(() => { | const onSkip = React.useCallback(() => { | ||||
// show username selection screen | // show username selection screen | ||||
}, []); | }, []); | ||||
const exactSearchUserCall = useServerCall(exactSearchUser); | const exactSearchUserCall = useServerCall(exactSearchUser); | ||||
const dispatchActionPromise = useDispatchActionPromise(); | const dispatchActionPromise = useDispatchActionPromise(); | ||||
const { navigate } = props.navigation; | |||||
const onSuccessfulWalletSignature = React.useCallback( | const onSuccessfulWalletSignature = React.useCallback( | ||||
async (result: SIWEResult) => { | async (result: SIWEResult) => { | ||||
const searchPromise = exactSearchUserCall(result.address); | const searchPromise = exactSearchUserCall(result.address); | ||||
dispatchActionPromise(exactSearchUserActionTypes, searchPromise); | dispatchActionPromise(exactSearchUserActionTypes, searchPromise); | ||||
const { userInfo } = await searchPromise; | const { userInfo } = await searchPromise; | ||||
if (userInfo) { | if (userInfo) { | ||||
// show duplicate account screen | const { message, signature } = result; | ||||
navigate<'ExistingEthereumAccount'>({ | |||||
name: ExistingEthereumAccountRouteName, | |||||
params: { message, signature }, | |||||
}); | |||||
} else { | } else { | ||||
// show avatar selection screen | // show avatar selection screen | ||||
} | } | ||||
}, | }, | ||||
[exactSearchUserCall, dispatchActionPromise], | [exactSearchUserCall, dispatchActionPromise, navigate], | ||||
); | ); | ||||
let siwePanel; | let siwePanel; | ||||
if (panelState !== 'closed') { | if (panelState !== 'closed') { | ||||
siwePanel = ( | siwePanel = ( | ||||
<SIWEPanel | <SIWEPanel | ||||
onClosing={onPanelClosing} | onClosing={onPanelClosing} | ||||
onClosed={onPanelClosed} | onClosed={onPanelClosed} | ||||
closing={panelState === 'closing'} | closing={panelState === 'closing'} | ||||
onSuccessfulWalletSignature={onSuccessfulWalletSignature} | onSuccessfulWalletSignature={onSuccessfulWalletSignature} | ||||
setLoading={siwePanelSetLoading} | setLoading={siwePanelSetLoading} | ||||
/> | /> | ||||
); | ); | ||||
} | } | ||||
return ( | return ( | ||||
<> | <> | ||||
<RegistrationContainer> | <RegistrationContainer> | ||||
<RegistrationContentContainer style={styles.scrollViewContentContainer}> | <RegistrationContentContainer style={styles.scrollViewContentContainer}> | ||||
<Text style={styles.header}> | <Text style={styles.header}> | ||||
Do you want to connect an Ethereum Wallet to your account? | Do you want to connect an Ethereum wallet? | ||||
</Text> | </Text> | ||||
{body} | {body} | ||||
<View style={styles.ethereumLogoContainer}> | <View style={styles.ethereumLogoContainer}> | ||||
<EthereumLogoDark /> | <EthereumLogoDark /> | ||||
</View> | </View> | ||||
</RegistrationContentContainer> | </RegistrationContentContainer> | ||||
<RegistrationButtonContainer> | <RegistrationButtonContainer> | ||||
<RegistrationButton | <RegistrationButton | ||||
▲ Show 20 Lines • Show All 57 Lines • Show Last 20 Lines |