Changeset View
Changeset View
Standalone View
Standalone View
native/account/registration/connect-ethereum.react.js
// @flow | // @flow | ||||
import * as React from 'react'; | import * as React from 'react'; | ||||
import { Text, View } from 'react-native'; | import { Text, View } from 'react-native'; | ||||
import { | |||||
exactSearchUser, | |||||
exactSearchUserActionTypes, | |||||
} from 'lib/actions/user-actions.js'; | |||||
import type { SIWEResult } from 'lib/types/siwe-types.js'; | |||||
import { | |||||
useServerCall, | |||||
useDispatchActionPromise, | |||||
} 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 } from '../../navigation/route-names.js'; | ||||
import { useStyles } from '../../themes/colors.js'; | import { useStyles } from '../../themes/colors.js'; | ||||
▲ Show 20 Lines • Show All 75 Lines • ▼ Show 20 Lines | (loading: boolean) => { | ||||
if (panelState === 'closing' || panelState === 'closed') { | if (panelState === 'closing' || panelState === 'closed') { | ||||
return; | return; | ||||
} | } | ||||
setPanelState(loading ? 'opening' : 'open'); | setPanelState(loading ? 'opening' : 'open'); | ||||
}, | }, | ||||
[panelState], | [panelState], | ||||
); | ); | ||||
const onSkip = React.useCallback(() => {}, []); | const onSkip = React.useCallback(() => { | ||||
const onSuccessfulWalletSignature = React.useCallback(() => {}, []); | // show username selection screen | ||||
}, []); | |||||
const exactSearchUserCall = useServerCall(exactSearchUser); | |||||
const dispatchActionPromise = useDispatchActionPromise(); | |||||
const onSuccessfulWalletSignature = React.useCallback( | |||||
async (result: SIWEResult) => { | |||||
const searchPromise = exactSearchUserCall(result.address); | |||||
dispatchActionPromise(exactSearchUserActionTypes, searchPromise); | |||||
const { userInfo } = await searchPromise; | |||||
if (userInfo) { | |||||
// show duplicate account screen | |||||
} else { | |||||
// show avatar selection screen | |||||
} | |||||
}, | |||||
[exactSearchUserCall, dispatchActionPromise], | |||||
); | |||||
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'} | ||||
▲ Show 20 Lines • Show All 77 Lines • Show Last 20 Lines |