From 2d2964770d70a17f596487d8337cca30ddcad66d Mon Sep 17 00:00:00 2001 From: kalashshah <202051096@iiitvadodara.ac.in> Date: Mon, 19 Feb 2024 16:37:09 +0530 Subject: [PATCH] fix: wallet and pkey login flows --- .../screens/SignInScreenAdvance.tsx | 20 ++++++++++++------- src/navigation/screens/SignInScreenWallet.tsx | 12 +++++++++-- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/navigation/screens/SignInScreenAdvance.tsx b/src/navigation/screens/SignInScreenAdvance.tsx index f382fade4..8100bcbee 100644 --- a/src/navigation/screens/SignInScreenAdvance.tsx +++ b/src/navigation/screens/SignInScreenAdvance.tsx @@ -14,6 +14,7 @@ import useNotice from 'src/hooks/ui/useNotice'; import {setAuthType, setInitialSignin, setIsGuest} from 'src/redux/authSlice'; const SignInScreenAdvance = () => { + const [loading, setLoading] = useState(false); const [privateKey, setPrivateKey] = useState(''); const [error, setError] = useState({title: '', subtitle: ''}); const qrScannerRef = useRef(null); @@ -39,6 +40,7 @@ const SignInScreenAdvance = () => { }; const handleLogin = async (key?: string) => { + setLoading(true); const pkey = key || privateKey; const provider = Web3Helper.getWeb3Provider(); const {success, wallet} = await Web3Helper.getWalletAddress(pkey, provider); @@ -69,6 +71,7 @@ const SignInScreenAdvance = () => { fromOnboarding: true, }); } + setLoading(false); }; return ( @@ -79,7 +82,8 @@ const SignInScreenAdvance = () => { footerLabel="Your private key can be used by malicious apps to compromise you. [Learn about risks](https://www.coinbase.com/learn/crypto-basics/what-is-a-private-key) and [Verify our repo](https://github.com/ethereum-push-notification-service/push-mobile-app)" footerButtons={[ { - onPress: handleLogin, + loading: loading, + onPress: () => handleLogin(), title: 'Import', bgColor: GLOBALS.COLORS.PINK, fontColor: GLOBALS.COLORS.WHITE, @@ -107,12 +111,11 @@ const SignInScreenAdvance = () => { limit={64} defaultValue={privateKey} value={privateKey} - onChangeText={async key => { - setPrivateKey(key); - await handleLogin(key); - }} + onChangeText={txt => setPrivateKey(txt)} title="Enter private key" - multiline={true} + textAlignVertical="center" + returnKeyType="done" + onSubmitEditing={() => handleLogin()} /> @@ -123,7 +126,10 @@ const SignInScreenAdvance = () => { errorMessage="Ensure that it is a valid Eth private key QR" title="Scan your Eth private key to link your device to the push app" qrType={QR_TYPES.ETH_PK_SCAN} - doneFunc={(code: string) => setPrivateKey(code)} + doneFunc={async (code: string) => { + setPrivateKey(code); + await handleLogin(code); + }} closeFunc={() => toggleQRScanner(false)} /> { + const [loading, setLoading] = useState(false); const [input, setInput] = useState(''); const [error, setError] = useState({title: '', subtitle: ''}); @@ -39,6 +40,7 @@ const SignInScreenWallet = () => { }; const handleSignin = async (code?: string) => { + setLoading(true); const address = code || input; try { const {wallet} = await Web3Helper.resolveBlockchainDomainAndWallet( @@ -60,11 +62,14 @@ const SignInScreenWallet = () => { // @ts-ignore navigation.navigate(GLOBALS.SCREENS.BIOMETRIC); } catch (e) { + console.log('Errror', e); setError({ title: 'Invalid Wallet Address or Domain', subtitle: 'Please enter a valid erc20 wallet address or web3 domain', }); showErrorNotice(); + } finally { + setLoading(false); } }; @@ -74,8 +79,9 @@ const SignInScreenWallet = () => { title="Enter your wallet address to sign in." footerButtons={[ { + loading: loading, title: 'Sign In', - onPress: handleSignin, + onPress: () => handleSignin(), bgColor: GLOBALS.COLORS.PINK, fontColor: GLOBALS.COLORS.WHITE, }, @@ -103,7 +109,9 @@ const SignInScreenWallet = () => { value={input} onChangeText={txt => setInput(txt)} title="Enter Wallet Address or Web3 Domain" - multiline={true} + textAlignVertical="center" + returnKeyType="done" + onSubmitEditing={() => handleSignin()} />