diff --git a/src/App.tsx b/src/App.tsx index a600a7990..6c8f95a2d 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,11 +1,4 @@ -import React, { - memo, - ReactElement, - useMemo, - useEffect, - useCallback, - useState, -} from 'react'; +import React, { memo, ReactElement, useMemo, useEffect, useState } from 'react'; import { Platform, NativeModules } from 'react-native'; import Toast from 'react-native-toast-message'; import QuickActions from 'react-native-quick-actions'; @@ -60,45 +53,29 @@ const App = (): ReactElement => { checkForAppUpdate(); }, []); - const RootComponent = useCallback((): ReactElement => { - if (!isReady) { - return <>; - } - - if (showRecovery) { - return ; - } - - if (hasCriticalUpdate) { - return ; - } - - if (walletExists) { - return ( - - - {requiresRemoteRestore ? : } - - - ); - } - - return ; - }, [ - isReady, - showRecovery, - hasCriticalUpdate, - walletExists, - requiresRemoteRestore, - ]); - const currentTheme = useMemo(() => getTheme(theme), [theme]); return ( - + + {!isReady ? ( + <> + ) : showRecovery ? ( + + ) : hasCriticalUpdate ? ( + + ) : walletExists ? ( + + + {requiresRemoteRestore ? : } + + + ) : ( + + )} + diff --git a/src/screens/Onboarding/RestoreFromSeed.tsx b/src/screens/Onboarding/RestoreFromSeed.tsx index b2bed7a16..3cff2bb6c 100644 --- a/src/screens/Onboarding/RestoreFromSeed.tsx +++ b/src/screens/Onboarding/RestoreFromSeed.tsx @@ -108,6 +108,9 @@ const RestoreFromSeed = (): ReactElement => { setIsRestoringWallet(true); dispatch(verifyBackup()); + // Tells component within slashtags provider that it needs to handle restoring from remote backup + dispatch(updateUser({ requiresRemoteRestore: true })); + const res = await restoreSeed({ mnemonic: seed.join(' '), bip39Passphrase, @@ -120,9 +123,6 @@ const RestoreFromSeed = (): ReactElement => { }); return; } - - //Tells component within slashtags provider that it needs to handle restoring from remote backup - dispatch(updateUser({ requiresRemoteRestore: true })); }; const handleAdvanced = (): void => { diff --git a/src/store/actions/wallet.ts b/src/store/actions/wallet.ts index 01dc04f9d..6a568a07e 100644 --- a/src/store/actions/wallet.ts +++ b/src/store/actions/wallet.ts @@ -120,13 +120,16 @@ export const createWallet = async ({ export const createDefaultWalletStructure = async ({ walletName = 'wallet0', + seedHash, }: { walletName?: TWalletName; + seedHash: string; }): Promise> => { try { const payload: IWallets = { [walletName]: getDefaultWalletShape(), }; + payload[walletName].seedHash = seedHash; dispatch({ type: actions.CREATE_WALLET, payload, diff --git a/src/utils/wallet/index.ts b/src/utils/wallet/index.ts index 04a0744a5..c0b87aecc 100644 --- a/src/utils/wallet/index.ts +++ b/src/utils/wallet/index.ts @@ -896,7 +896,10 @@ export const createDefaultWallet = async ({ const seed = await bip39.mnemonicToSeed(mnemonic, bip39Passphrase); await setKeychainSlashtagsPrimaryKey(seed); - await createDefaultWalletStructure({ walletName }); + await createDefaultWalletStructure({ + walletName, + seedHash: seedHash(seed), + }); let gapLimitOptions = getDefaultGapLimitOptions(); if (restore) {