From 60cceff2d970566d89f31a69038621a9e4584622 Mon Sep 17 00:00:00 2001 From: Skylar Barrera Date: Wed, 27 Mar 2024 13:49:19 -0400 Subject: [PATCH 01/12] fix: search by contract address (#5563) --- src/hooks/useSearchCurrencyList.ts | 1 + src/hooks/useSwapCurrencyList.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/src/hooks/useSearchCurrencyList.ts b/src/hooks/useSearchCurrencyList.ts index dab30e0bdad..3d0d0be696c 100644 --- a/src/hooks/useSearchCurrencyList.ts +++ b/src/hooks/useSearchCurrencyList.ts @@ -184,6 +184,7 @@ const useSearchCurrencyList = (searchQuery: string, searchChainId = MAINNET_CHAI return [ { + address, decimals, favorite: false, highLiquidity: false, diff --git a/src/hooks/useSwapCurrencyList.ts b/src/hooks/useSwapCurrencyList.ts index 44bb4c9916e..bd5a0cd57fe 100644 --- a/src/hooks/useSwapCurrencyList.ts +++ b/src/hooks/useSwapCurrencyList.ts @@ -193,6 +193,7 @@ const useSwapCurrencyList = (searchQuery: string, searchChainId = MAINNET_CHAINI const uniqueId = `${address}_${network}`; return [ { + address, decimals, favorite: false, highLiquidity: false, From 783f120019d955e11886b71fd3b028e9f5dfa440 Mon Sep 17 00:00:00 2001 From: Matthew Wall Date: Wed, 27 Mar 2024 12:01:22 -0600 Subject: [PATCH 02/12] [APP-1049]: (feat): Backups V2 (#5310) * [APP-1051]: (feat): add backups global config (#5306) * (feat): add backups global config * stash * add migration for setting initial backup method * add method to migrations array * revert pbx change * change backup status value * [APP-1052]: Add icon to Settings depending on `preferredBackupMethod` and `backupStatus` (#5313) * [APP-1052]: (feat): adjust settings page row * fix migration and hook for useWallets * simplify an if statement * wallets and backups screen progress (#5315) * wallets and backups screen progress * manual backups progress * progress * feat(backups): more work on wallets and backups * revert pbx * rev init wallet change * final touches on wallets and backup view * cleanup unused stuff and progress on backups flow * backups: warning + new secret phrase styles (#5322) * save progress * cleanup and finish secret phrase / private key viewiing screens --------- Co-authored-by: Matthew Wall * chore: cleanup WalletsAndBackup settings screen and replace lang with i18n * android settings fixes * @matthew/app 1106 (#5359) * progress on cloud backup flow * cloud backup flow progress * [APP-1105]: Progress on restore from cloud flow (#5358) * progress on restore from cloud * progress on choose backup flow * f * test signed commit * backups v2 restore from icloud flow done * progress on restore step * restore from backup working * fix UserData.json restoring from other backups * some cloud backup type improvements * fix menu item width bug * bug fixes * cleanup unused imports from manage cloud backups file * typescript, lint and cleanup * fix lint issues * fix file name casing * fix import secret phrase or private key image * fix casing * android style fixes * wrap up work * android stuff * android bsstack fixes * more touches * fixes * improve spacing on >1 line wallet rows * fix lint * @matthew/app 1135 (#5397) * fix button legibility * fix manual backup bug * change log * fix bug where create wallet sometimes uses the wrong wallet * add ens avatars to wallets view * cleanup size * add more padding to image on settings page * fix * fix algo used to calculate account menu item height * add change drivce accounts for android * cleanup .android files * cleanup .android files * change dev settings sheet title on android * fix create wallet modal on close opening the create profile sheet * add menu item being the entire context menu boundary (#5405) * few small changes * @matthew/app 1157 (#5406) * sort wallets * fix numeric increment and sort wallets by type and backup status * i18n stuff * add icons * ens fix + context menu button color change (#5414) * skylar did all this (#5409) * skylar did all this * change backupProvider to be served from user data and not local wallet state * fix stuff * cleanup merge * add explainer sheet from global backups * rm console logs * improve pin screen on android * some i18n and cloud backup changes * backups: show back up state (#5420) * chore: rug portfolio websocket (#5371) * rug portfolio websocket * cleanup * rug it all --------- Co-authored-by: skylarbarrera * skylar did all this * change backupProvider to be served from user data and not local wallet state * fix stuff * cleanup merge * txSim: price clean up (#5411) * save * swaps: fix max native check (#5399) * audit: undici (#5419) * fin * clean up * only save local password if we dont have * finish piping up title --------- Co-authored-by: Derek Nelson <6868432+dereknelson@users.noreply.github.com> Co-authored-by: Matthew Wall * impl. backing up all wallets at once (#5432) * progress * backup all wallets progress * add some logging * Update src/screens/Diagnostics/index.tsx * . * Fix Android google drive login quirks (#5461) * fix android stuff * fix lint * rev pbx * / * Fix Android ShadowStack causing TextInputs to be funky... and not in a fun way (#5478) * fix some i18n * add cloudPlatform to description * mother of god * undo test changes * added assets to xcode * fix files (#5468) * Add this wallet sheet doesn't dismiss after backing up to iCloud (#5467) * fix goBack not being called on backup success * return success * fix view cloud backups not working (#5466) * Android only - previous back up with pin code requires a new creation each time to view (#5482) * temp change * change validPin flag when biometrics fails to decrypt * Fixes to Android Google Account Management (#5476) * lots of android account changing fixes * remove log * remove remoteProvider * i18n * test signing key * init (#5507) * fix android pin flow * restore to backup changes * restore changes * fix lint * restoration changes * getprivatekey call changes * smol cleanup on keychain * rm log * fix current backup not being restored into keychain properly * add keychain logging * some backups issues solved * fix some longstanding android old pin decryption and create wallet not prioritizing seed phrases * remove unused lodash import and console logs * final restoration changes * fix backup prompt not working since it wasn't wrapped in the provider * undo commit to nfts query * add login if needed on android * fix no provider modal * rm xcode assets * Update src/components/backup/BackupCloudStep.tsx Co-authored-by: Bruno Barbieri <1247834+brunobar79@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Bruno Barbieri <1247834+brunobar79@users.noreply.github.com> * remove keychain logging stuff * fix lint * fix i18n paths --------- Co-authored-by: Skylar Barrera Co-authored-by: Derek Nelson <6868432+dereknelson@users.noreply.github.com> Co-authored-by: Derek Co-authored-by: Bruno Barbieri <1247834+brunobar79@users.noreply.github.com> --- src/assets/BackedUpCloud.png | Bin 0 -> 3107 bytes src/assets/BackedUpCloud@2x.png | Bin 0 -> 8541 bytes src/assets/BackedUpCloud@3x.png | Bin 0 -> 15560 bytes src/assets/BackupWarning.png | Bin 0 -> 2004 bytes src/assets/BackupWarning@2x.png | Bin 0 -> 4396 bytes src/assets/BackupWarning@3x.png | Bin 0 -> 7266 bytes src/assets/CloudBackupWarning.png | Bin 0 -> 1883 bytes src/assets/CloudBackupWarning@2x.png | Bin 0 -> 4263 bytes src/assets/CloudBackupWarning@3x.png | Bin 0 -> 6989 bytes src/assets/CreateNewWallet.png | Bin 0 -> 2838 bytes src/assets/CreateNewWallet@2x.png | Bin 0 -> 7491 bytes src/assets/CreateNewWallet@3x.png | Bin 0 -> 13884 bytes src/assets/ImportSecretPhraseOrPrivateKey.png | Bin 0 -> 3278 bytes .../ImportSecretPhraseOrPrivateKey@2x.png | Bin 0 -> 8840 bytes .../ImportSecretPhraseOrPrivateKey@3x.png | Bin 0 -> 16364 bytes src/assets/ManuallyBackedUp.png | Bin 0 -> 2978 bytes src/assets/ManuallyBackedUp@2x.png | Bin 0 -> 8011 bytes src/assets/ManuallyBackedUp@3x.png | Bin 0 -> 14979 bytes src/assets/PairHardwareWallet.png | Bin 0 -> 3241 bytes src/assets/PairHardwareWallet@2x.png | Bin 0 -> 8464 bytes src/assets/PairHardwareWallet@3x.png | Bin 0 -> 16029 bytes src/assets/WalletsAndBackup.png | Bin 0 -> 3104 bytes src/assets/WalletsAndBackup@2x.png | Bin 0 -> 8185 bytes src/assets/WalletsAndBackup@3x.png | Bin 0 -> 15145 bytes src/assets/watchWallet.png | Bin 0 -> 3584 bytes src/assets/watchWallet@2x.png | Bin 0 -> 9448 bytes src/assets/watchWallet@3x.png | Bin 0 -> 17426 bytes src/components/PromoSheet.tsx | 1 - src/components/add-wallet/AddWalletList.tsx | 4 +- src/components/add-wallet/AddWalletRow.tsx | 74 +-- .../asset-list/RecyclerAssetList2/index.tsx | 22 +- .../backup/AddWalletToCloudBackupStep.tsx | 123 ++++ .../backup/BackupChooseProviderStep.tsx | 216 +++++++ src/components/backup/BackupCloudStep.js | 307 --------- src/components/backup/BackupCloudStep.tsx | 256 ++++++++ .../backup/BackupConfirmPasswordStep.js | 175 ----- src/components/backup/BackupManualStep.js | 137 ---- src/components/backup/BackupManuallyStep.tsx | 98 +++ src/components/backup/BackupRainbowButton.tsx | 121 ++++ .../BackupRainbowButtonBackground.tsx} | 49 +- src/components/backup/BackupSheet.tsx | 58 ++ .../backup/BackupSheetKeyboardLayout.js | 43 -- .../backup/BackupSheetKeyboardLayout.tsx | 62 ++ ...SheetSection.js => BackupSheetSection.tsx} | 50 +- src/components/backup/ChooseBackupStep.tsx | 235 +++++++ src/components/backup/CloudBackupProvider.tsx | 87 +++ src/components/backup/RestoreCloudStep.tsx | 338 +++++----- src/components/backup/{index.js => index.ts} | 2 - src/components/backup/useCreateBackup.ts | 156 +++++ .../backup/usePasswordValidation.ts | 40 ++ .../{RainbowButton.js => RainbowButton.tsx} | 69 +- .../RainbowButtonBackground.tsx | 164 +++++ .../rainbow-button/RainbowButtonTypes.js | 4 - .../rainbow-button/RainbowButtonTypes.ts | 7 + .../rainbow-button/{index.js => index.ts} | 0 src/components/contacts/ImageAvatar.js | 5 + .../SearchInput/SearchInput.tsx | 6 +- .../UniqueTokenExpandedState.tsx | 1 - .../expanded-state/WalletProfileState.js | 21 +- .../custom-gas/FeesGweiInput.tsx | 2 +- .../swap-settings/MaxToleranceInput.tsx | 4 +- src/components/fields/PasswordField.js | 86 --- src/components/fields/PasswordField.tsx | 78 +++ .../floating-emojis/FloatingEmojis.js | 2 +- src/components/modal/ModalHeaderButton.js | 4 +- src/components/navbar/NavbarItem.tsx | 10 +- .../secret-display/SecretDisplayCard.tsx | 22 +- .../secret-display/SecretDisplaySection.tsx | 189 ++++-- .../secret-display/SeedWordGrid.tsx | 58 +- src/components/sheet/SimpleSheet.tsx | 16 +- .../sheet/{SlackSheet.js => SlackSheet.tsx} | 127 ++-- .../SheetActionButton.tsx | 1 + src/design-system/components/Box/Box.tsx | 5 + src/design-system/components/Stack/Stack.tsx | 8 +- src/design-system/components/Text/Text.tsx | 3 + src/handlers/cloudBackup.ts | 17 +- src/handlers/walletReadyEvents.ts | 27 +- src/helpers/walletBackupStepTypes.ts | 11 +- src/hooks/useCloudBackups.ts | 71 ++ src/hooks/useFeesPanelInputRefs.ts | 4 +- src/hooks/useImportingWallet.ts | 24 +- src/hooks/useMagicAutofocus.ts | 2 +- src/hooks/useManageCloudBackups.ts | 154 ++--- src/hooks/useSendSheetInputRefs.ts | 4 +- src/hooks/useWalletCloudBackup.ts | 55 +- src/hooks/useWallets.ts | 2 +- src/keychain/index.ts | 16 +- src/languages/en_US.json | 130 +++- src/model/backup.ts | 327 ++++++++-- src/model/wallet.ts | 23 +- src/navigation/AddWalletNavigator.tsx | 6 +- src/navigation/Navigation.js | 5 +- src/navigation/RegisterENSNavigator.tsx | 4 +- src/navigation/Routes.android.tsx | 43 +- src/navigation/Routes.ios.tsx | 4 +- src/navigation/config.tsx | 111 ++-- src/navigation/routesNames.ts | 5 +- src/navigation/types.ts | 4 +- src/redux/wallets.ts | 27 +- src/screens/AddWalletSheet.tsx | 182 +++--- src/screens/BackupSheet.js | 199 ------ src/screens/ENSAdditionalRecordsSheet.tsx | 4 +- src/screens/ENSConfirmRegisterSheet.tsx | 1 - src/screens/ExternalLinkWarningSheet.tsx | 4 +- src/screens/LearnWebViewScreen.tsx | 4 +- src/screens/PinAuthenticationScreen.js | 2 +- src/screens/RestoreSheet.js | 29 - src/screens/RestoreSheet.tsx | 49 ++ src/screens/SendConfirmationSheet.tsx | 6 +- src/screens/SettingsSheet/SettingsPages.ts | 4 +- src/screens/SettingsSheet/SettingsSheet.tsx | 153 +++++ .../components/AlreadyBackedUpView.tsx | 203 ------ .../components/AppIconSection.android.tsx | 104 --- .../components/BackupSection.android.tsx | 164 ----- .../components/BackupSection.tsx | 141 ---- .../components/Backups/BackUpMenuButton.tsx | 106 +++ .../components/Backups/SecretWarning.tsx | 150 +++++ .../{ => Backups}/ShowSecretView.tsx | 0 .../components/Backups/ViewCloudBackups.tsx | 158 +++++ .../components/Backups/ViewWalletBackup.tsx | 527 +++++++++++++++ .../components/Backups/WalletsAndBackup.tsx | 610 ++++++++++++++++++ .../components/Backups/routes.ts | 6 + .../components/CurrencySection.android.tsx | 92 --- .../components/DevSection.android.tsx | 446 ------------- .../components/LanguageSection.tsx | 43 +- src/screens/SettingsSheet/components/Menu.tsx | 14 +- .../components/MenuContainer.tsx | 14 +- .../SettingsSheet/components/MenuHeader.tsx | 194 ++++++ .../SettingsSheet/components/MenuItem.tsx | 36 +- .../components/NeedsBackupView.tsx | 132 ---- .../SettingsSheet/components/NetworkSection | 0 .../components/NetworkSection.android.tsx | 83 --- .../NotificationsSection.android.tsx | 466 ------------- .../components/PrivacySection.android.tsx | 118 ---- .../components/SettingsBackupView.android.tsx | 35 - .../components/SettingsBackupView.tsx | 13 - .../components/SettingsSection.tsx | 79 +-- .../components/ShowSecretView.android.tsx | 36 -- .../WalletNotificationsSettings.android.tsx | 283 -------- src/screens/SettingsSheet/constants.ts | 13 + src/screens/SettingsSheet/index.tsx | 203 ------ .../SettingsSheet/useVisibleWallets.ts | 96 +++ src/screens/SettingsSheet/utils.ts | 118 ++++ src/screens/WelcomeScreen/index.tsx | 111 ++-- src/screens/mints/MintSheet.tsx | 1 - src/screens/mints/PoapSheet.tsx | 1 - src/screens/positions/PositionSheet.tsx | 1 - .../TransactionDetails.tsx | 1 - 148 files changed, 5492 insertions(+), 4565 deletions(-) create mode 100644 src/assets/BackedUpCloud.png create mode 100644 src/assets/BackedUpCloud@2x.png create mode 100644 src/assets/BackedUpCloud@3x.png create mode 100644 src/assets/BackupWarning.png create mode 100644 src/assets/BackupWarning@2x.png create mode 100644 src/assets/BackupWarning@3x.png create mode 100644 src/assets/CloudBackupWarning.png create mode 100644 src/assets/CloudBackupWarning@2x.png create mode 100644 src/assets/CloudBackupWarning@3x.png create mode 100644 src/assets/CreateNewWallet.png create mode 100644 src/assets/CreateNewWallet@2x.png create mode 100644 src/assets/CreateNewWallet@3x.png create mode 100644 src/assets/ImportSecretPhraseOrPrivateKey.png create mode 100644 src/assets/ImportSecretPhraseOrPrivateKey@2x.png create mode 100644 src/assets/ImportSecretPhraseOrPrivateKey@3x.png create mode 100644 src/assets/ManuallyBackedUp.png create mode 100644 src/assets/ManuallyBackedUp@2x.png create mode 100644 src/assets/ManuallyBackedUp@3x.png create mode 100644 src/assets/PairHardwareWallet.png create mode 100644 src/assets/PairHardwareWallet@2x.png create mode 100644 src/assets/PairHardwareWallet@3x.png create mode 100644 src/assets/WalletsAndBackup.png create mode 100644 src/assets/WalletsAndBackup@2x.png create mode 100644 src/assets/WalletsAndBackup@3x.png create mode 100644 src/assets/watchWallet.png create mode 100644 src/assets/watchWallet@2x.png create mode 100644 src/assets/watchWallet@3x.png create mode 100644 src/components/backup/AddWalletToCloudBackupStep.tsx create mode 100644 src/components/backup/BackupChooseProviderStep.tsx delete mode 100644 src/components/backup/BackupCloudStep.js create mode 100644 src/components/backup/BackupCloudStep.tsx delete mode 100644 src/components/backup/BackupConfirmPasswordStep.js delete mode 100644 src/components/backup/BackupManualStep.js create mode 100644 src/components/backup/BackupManuallyStep.tsx create mode 100644 src/components/backup/BackupRainbowButton.tsx rename src/components/{buttons/rainbow-button/RainbowButtonBackground.js => backup/BackupRainbowButtonBackground.tsx} (73%) create mode 100644 src/components/backup/BackupSheet.tsx delete mode 100644 src/components/backup/BackupSheetKeyboardLayout.js create mode 100644 src/components/backup/BackupSheetKeyboardLayout.tsx rename src/components/backup/{BackupSheetSection.js => BackupSheetSection.tsx} (59%) create mode 100644 src/components/backup/ChooseBackupStep.tsx create mode 100644 src/components/backup/CloudBackupProvider.tsx rename src/components/backup/{index.js => index.ts} (57%) create mode 100644 src/components/backup/useCreateBackup.ts create mode 100644 src/components/backup/usePasswordValidation.ts rename src/components/buttons/rainbow-button/{RainbowButton.js => RainbowButton.tsx} (69%) create mode 100644 src/components/buttons/rainbow-button/RainbowButtonBackground.tsx delete mode 100644 src/components/buttons/rainbow-button/RainbowButtonTypes.js create mode 100644 src/components/buttons/rainbow-button/RainbowButtonTypes.ts rename src/components/buttons/rainbow-button/{index.js => index.ts} (100%) delete mode 100644 src/components/fields/PasswordField.js create mode 100644 src/components/fields/PasswordField.tsx rename src/components/sheet/{SlackSheet.js => SlackSheet.tsx} (61%) create mode 100644 src/hooks/useCloudBackups.ts delete mode 100644 src/screens/BackupSheet.js delete mode 100644 src/screens/RestoreSheet.js create mode 100644 src/screens/RestoreSheet.tsx create mode 100644 src/screens/SettingsSheet/SettingsSheet.tsx delete mode 100644 src/screens/SettingsSheet/components/AlreadyBackedUpView.tsx delete mode 100644 src/screens/SettingsSheet/components/AppIconSection.android.tsx delete mode 100644 src/screens/SettingsSheet/components/BackupSection.android.tsx delete mode 100644 src/screens/SettingsSheet/components/BackupSection.tsx create mode 100644 src/screens/SettingsSheet/components/Backups/BackUpMenuButton.tsx create mode 100644 src/screens/SettingsSheet/components/Backups/SecretWarning.tsx rename src/screens/SettingsSheet/components/{ => Backups}/ShowSecretView.tsx (100%) create mode 100644 src/screens/SettingsSheet/components/Backups/ViewCloudBackups.tsx create mode 100644 src/screens/SettingsSheet/components/Backups/ViewWalletBackup.tsx create mode 100644 src/screens/SettingsSheet/components/Backups/WalletsAndBackup.tsx create mode 100644 src/screens/SettingsSheet/components/Backups/routes.ts delete mode 100644 src/screens/SettingsSheet/components/CurrencySection.android.tsx delete mode 100644 src/screens/SettingsSheet/components/DevSection.android.tsx create mode 100644 src/screens/SettingsSheet/components/MenuHeader.tsx delete mode 100644 src/screens/SettingsSheet/components/NeedsBackupView.tsx delete mode 100644 src/screens/SettingsSheet/components/NetworkSection delete mode 100644 src/screens/SettingsSheet/components/NetworkSection.android.tsx delete mode 100644 src/screens/SettingsSheet/components/NotificationsSection.android.tsx delete mode 100644 src/screens/SettingsSheet/components/PrivacySection.android.tsx delete mode 100644 src/screens/SettingsSheet/components/SettingsBackupView.android.tsx delete mode 100644 src/screens/SettingsSheet/components/SettingsBackupView.tsx delete mode 100644 src/screens/SettingsSheet/components/ShowSecretView.android.tsx delete mode 100644 src/screens/SettingsSheet/components/WalletNotificationsSettings.android.tsx delete mode 100644 src/screens/SettingsSheet/index.tsx create mode 100644 src/screens/SettingsSheet/useVisibleWallets.ts create mode 100644 src/screens/SettingsSheet/utils.ts diff --git a/src/assets/BackedUpCloud.png b/src/assets/BackedUpCloud.png new file mode 100644 index 0000000000000000000000000000000000000000..10fb59ccd3ae805d67debd577e7277cff5ca92a6 GIT binary patch literal 3107 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 literal 0 HcmV?d00001 diff --git a/src/assets/BackedUpCloud@2x.png b/src/assets/BackedUpCloud@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..559629b79031b1943550b6c933cfe911f0d3b3bd GIT binary patch literal 8541 zcmaKRWmFqo)b8LEDNx)B1PaB9wz#{y1uIUAyKA8kpjfdW!HWfoJ5+F|K%tZX#ogV% z@P2pQUw7SED>KQQGdcV0+44MlLp0SD@NuYc006*OQk2yO08}aDcPDI2zHRNM83Ancw7yv+jtRyR?>x;6N z6Hslc7t|Nxkn1tlBJec;Ee4eFFE74;3Dw&^v`DWUJ0lu=7*-!Lh0<3fxu>d?H(m1& ztzw0)G4z~A#}TWBq$e!qOzJ~;j9}&W&3aJ6lmO%cGx-viyyYs` z)9&jwi%gfa^;^!*62Q0FVbFlmbHSV(gAD zK8nnI;6??|!>~~S8oadSCb{?@4k_d)4Cnv_0Kx{Ub@5IDYDvCHO>gTcY)X=#0QBJi zpn_^#@W$`%BN68oYuj}$jK_tghFNuyL@;5#oGa#c-C>Vi(?S#C0V zy3TGJxiuiv22++0pid|!l;~hRv*V)0%$U+UH-c_yOQqd7169{7%p_NX1k(DK#}>E$S=Z;lu1 z-ag0gEh{|D zDOL*NTMGKH^NUomnbg&xB+^z^-96AGXFl3KkKEQPG2)qtJZ!dSa?!-7|G3dX$hRDY z_UVe1SVD@(^Qb4m*|6ohIV;jtNF68ZO0J+soF_l5z7#TLghR1*&TARv=%?C>KSKr@ zovio%1Zl4({ACz*X=t1tJJDAXa`w;2ywkR@9;ZdRL=lj}MsdwR8p`)2srjvaua&^? zaQnV^F>eJi*H*u8L{a5rVah(Gon z5M6=hZ7Md^IP<#OCU1>zGD&8xM_eXHk;pp+j`W$`SSQUn&$`h1HuJ=MssbwLuykus3OL&u{6#+wmzKnByYG%`{%W+Q zN%Ie_exIB?h7Ax(gn~5QwI>xxc5-$M!PA|qLdH!^e^=%r>5ZsMK=P~r>Ez_JJ{4ba z&iP0&UmFck*KW$WAiH(SYeifTDMt>v{M@X0&AfDBDg;HjX*yaPWwm8!%4n3#`1kLb z?A-gSolgI&6Yq(28SwFN*I{(cQi~wZ|ez3b+qG7udfZ`&V(i6 z&mzHA1u`m5UilHYNp5a6Q@>Zc?=v#!w1=3Km#kJ}c3!F21}70oTANtvBMecj$+WB? z$!_S0q?UEdw!J-EW*gBP3oqYma5wd{-Yz({1Tb^qBehFNjQ;(Y;nb~)Jv4dc>#NL; za=tfyv54_{u9Oi3T%2r;Z4B|Q>_cj*V6vO!G1B_t+E6_~szq;Wyvl28x4EfrtPY}E zq(8#xk9(E7Qz+95q%JZ@rQBoVn|r43en{-itIrD3gA9971a}{O%I{yuI0RGT5S}Nh z^Kc(~Zpw);HyBEe6ygjnA_T1)g7FZPtWR{AHIjI~s^#SdkRwP1)k7ri`(n8F&)lqH zQ@DAZE-udOD@V)sNP@i!4%^tCDH3V`aW9eaK29871Rvi1Jn*nKm%H%Gxw2VV%`H7G zx5srHZwzc%8^#xhiB3F5EaFUkrLbC00C}F~ad*oIwf)w=2bOWXqYPH^=OTV5uJSfRm20#Fwclw3E%|#wSAM%VtRY%-=aaEZ z61(KktZ4;v^mMe<@8-YH8DB{YS-b*j z3w^@&cY@yTD_*?6h?ngwq*C3Q3>1f({mhx0olGwDduzMx$HCTveZA58RrK#0bOW_` zCmjl8>iwmoh_&K-?EkfXc?fj0O=@WSx_DW&Q&Ng}Aun6(%!96i#vT6Fn*u1rtuRX4 z*w)%&U%0K~jB9A>m1g1?W@+FsI2?bw(6k?M{c&~X`=$JDoR8=Hj+xYHR0&S3X8Ptn z9Z}GIfb2H}OLtLFU8ZF7Y~MPFr1X zH2p__g7xha)VKVs#3Bq!#N~Bc_LjH(KK&*LgSv0N}`lIg$%bod1QAR9S686v5hiM;&@<6#WATGd%x)x#B zThvU{SH~QQEeyf*J%3-YD5QQ73+n4wf5K^J;`93bLfu-p(vw?tr zookp_06s?2oO|hgHYQUJwLR_5ti^s^HOzFRW?npLaIs?Nn2lIS?=JvQp>iM%_o<&7 zYjA5Ckh}qbFisE1emgK3`ivPzYBD=OZWK8<6$U?u-*Tu7c=Icb_~%~m8Obl7=QDdZ z>gEQwf@y4R*PhxX`VIQ8YVF1FI|&}jZd+qqP=RqzBp{=}KNg?J_r8Z>^bXL>PiJ!0 zPSliJSEbgRYKCPT?T;U97^ejqWO+IbP+BBkI2M{X`$^`KUoUL`9yNqf)J=1C6h~Pl z`CnmmHjBGP$rVJGUWX6>k{`lE@IrqT#n^zxt_$NYoaelHeK(>jE6*=?jM)7&H{?*38Q;UYgJQR4IJWIhYSPgKIj2 zTL&nHI=W72@zSm|e&*DfKLzan^Fca8DPf^kLLM8}Rx{46`M;fA)R%3WVWhpk-3P4& z#PEaXqZ&e1!O6qE?kL@gMF}L!8}QG^eJ%U1l+iVJ2T2Yf^UaK2Y8`wXnWVji*5}j- z)1p2TTc*s`2ydI8Skl;`AJKd$fRQi5dq3SroflUxzc+5}?aVj_H~0Lt>pu(iKap15 zW%>KS|7%ygLAw5LOAbw;@(TgOQre*btbN@WI!auoxehlSVcG?SDgvgJu%b)oj@G)8 z-{uypAK~-*_YkWyT=T109T#Zl@(a3lD_V>NC?9wsB#P}J2+2CoL!?mbU%`vwNVDe? z8n63CU(cDO)moq}uxs6I_84}xiA-}&vrTM8$VKHJU)GQox5a_*gCN}oV> z76ZWQAG%4AgrV0V5!k|8a|r22d#ZdQnM4MkdiT7tixT{rV~~uc^hH{H7ze_C4G z?u4A@V?zbuoW!;vU)>l2gAY6l>PDITmvB!Vx!$eS@O4V}k7&Jc5#^Mi06V819gf9O zJM!4kTUEMShQcKh+iZ4w{MWp00{d9 z@PB4=W6n=-U1z-8=e(#qs5dZY!Dr#USLj87gj{nwtywf;@$q%(O4jpV3I@Z5@yZg- z6~O-1B@GUcg}YY;jMLl4bvruYk^xRF!OsCfL3Fec#xew<^6CCs+7;G8tn zm)^9h45_v-7_|K_$M1IopQ~LOq6=_R(k>*}WyiB$nsCmrzE3dsJ*K^}?F`u;WN)t^ zX=y;rtbAjWcZHyg3;q{~-;!=)agg`H#jlhb^8SSrGMtnRvA-*wfBQGu5-z>J@%Jng zzqt=@deCFqK^w(dNTIpOtV1c5X^Sd0yX~`$>EuQGBx`!e&C_3B&v66{HAH0=we00w zB1%|#X+MzhO>?FZ$q($)OEd9qfpiXv+Lq_3U2+%H*T@(^h9Llj5;6?gKkovEA>Qn| zTVT9b$noh{by+A=SqZAAch8Y619-0)>P|H-Et6hJ-239Vk5)v(Lh7L?>%-Sn0_-xm z_wGRvmkW%tA|a)Hxd(o!lqLF4!Slt&*=`*yRFl*6&$rn-EbD5XH+8s=+^Ao6&&-q* zu61H=!~mgMk3ep{i)}Ti0zF{A{PWio=t8*L2g)W5UO+&puXdRu&3+{c>Tv($+9NK( zVeB~$2(5@KxB_H$ypj>qhf7isR(YqU_FtqW!(VrwuR?%j$O}a}+ig(|E7xdIjAA4H z8Q)bFSszmDd~!Mk&wB?}B4c-(O(!A!JeG@RcQ;LE%{S}sBrmQ1&GMbV#=bDVn_04b zLo?gBReCJMIJbxmYN0RWI8deadPN#LUjAQn#Y9py$-4d<`;X#{3@VA1qTmiGSPPzO zjnq%|z=S6s)lDQ-+d6iOYOK>JD95yZVXWy>dwBR4wRI|=&SSky=L<=l_XFtm;`zq*$I2MNJaha@Q*}WaB{8X zW;f-~;E z{-m>WPenE$Sf<5<9xi1Z2?#sMG~dIbAi*65xXBnHYV-!XzLv}>8fMY__C2C|B|Ql{ z_$kj46{?I?>&a0Q&aT<&{on7g+PUOe#u7vj0E~}?ijjgUb`HZat2f1z4s3#Xo@}aD ziW|kMfj1Buy}FDiHNh~&tDFAYGTZ1RA$AqbXVgV@AD>7Sk!!}>TqBHLH~eU`?q?(M zS0hva_#ewInJQYMN@jsEYzY*`Rx?0t!!T7Kg3=tJBf$JJqeL6h=Jq<+_`#NptUf>$ z9DaXar<=uvV2>D&i{}IH3jJiE|HL)(353fAiU@X2~f3Gm+(jSmGozF&dKs zPgPZ%<}*u{<@G!4Fp?KuaRr9BN}MsE5Z;g^V|Y9%0pJ?_NN@OEX{GZMO3A4vL!@Da z`i(qIHQWeForkjU0_a?JiI#Nd@2Hl7{suxQqql9`yg$pYhlgyOBvkv0xF;X?we&Y5 zA~JR``Me-&cH`PiP3T%R5=8i|ogmJHU6Ski1V}FLKF^iaKv^d#b~sijCbAav-CmOf zjbC$Sqk|t-?fEU08`<_Ob2OaV)cX>oz@kkA;%t^k3-Vc9!wg>$}uYDW1 z7cACUkKKYYjy7}HokUGwJyh@2_m13S2UTYc`iE{l*KW}24ArP;CDL#xrogN{y|(GI z0_hT(8@eRge?%@{ysE=jU4BNhBFFHxiA54PH2cub8DYcb`nMbX%5CyV;5cdVtNoTQ ztMz_DL1viBixh;?+NZalp5(#I6~As6y73-~b=O(;SJFkJ)rK=eu743&M{2P7H+zM# z9@*I?^XxrmWDQTD2Z_tnTRU^A1EDhNSpcABF#t!?7`Z#nKRO4qhS$qQmAs)Bp*3TF z&gpGwbq1;YljyK2tGdVGa`SSMNWlDHD$_d9aa86{`xYZwF^m4QJKg4P@v8*c5}2xI zcM1%HnN!kT&VE+6o$ad1noZ&7PabQvKV zt>}oOh!Mk1bi&q!!mr!q5B$+5MNmEf8C{gfLT!m^`6JrZ@)_MHXF6U5r-0rFHJKY* z>1wLTPET1(nq-P)^HzmhfKu(=INkKDI}TZuhD$G<&IMg^8Qdwp>^p4;tHs2WI=fxVGG5vX*C>D0f?S(z>6jqI0^tk53=uG_9=T zOp06ohJW!C2MOUY0UFT1r)YUl?gNv^;V7?Qw`D^fH8p40sChhiMC;$#f@V_YF~9ZC8?HF%t8=3C=v@zMS~_1*zrkw_XC|R?-6#q`g@>e#{8?!3#esVd;=CuDu$&N%iedWg`Lu9~9nW#4R4eSoyERk~{rER~zOf~f z%LcODQ&Y3e58a;$5Pq~$mq0ZKvICGedzg8K&{#a&GZ5n!yXm$84HRJ~N5!4FVG#I` zlNZ&)Y-F|c$GN`^uZ!`>z)A=H=)i9Vi1p$E>;`>8@SDe%cN;3l8J6}7#OdtQiL?qv zBB~P-6olXUKdca#T_3V={gL~<81h>f_}}otza+G!2@^j(I}$t9;=OcobbnzZmzHANpkX&}moLfpuD^t`L zqnhVNwbC_`ngL4_#ibCwGD_*A#~6M*czdLKAN8#{=pfMLg0oMx!##h_%#X_9NyT`x z;NKMIuY(PdEJqL_zW!vcK;f=9j}m+%)^2!C57@rB&{@0UQ+9X{O#p#PBvA?6`gkz~ zyb!(R=eQnBs(;44p*~PUq-AX4VS=6e#4QfG)7Q}w5aNBH=5n*o(j>lW(nBuoh4B=f z2*CeH1mr1IXSZ|tB5KEp^jJk)R?c?JYWAH%7WUN5zE6^w7=E-a#WP@dJsfe@&-ohE zu#u*Zw&hLcU4d`gv{Y@Z`-hXW|I6=F_FgArFZDj<#>0L`KPl@umO0~>JIMnC&XM^S zVvNdj{W}WBxq+M=7?{Nu-I13qF4vHU`^!-Rm)awVeIl&EY;t^xX zC1KZYBx2WIC0??!8T3)V34A{v8!zNAnF+CaW$)F>MLaT-NXD%kn&H`ckU>P~&T7jb z7?-E%4TWpE_aq=brQpZVI>S}In9N4s27T{$8k%};i)h|41ckQ0Ip0!kt0x%n-MX)e z?16HP-7YKm%%3DpezRFHhy7c6;bkM;FQ%jZ9B{>cd}DsqlENBzJZw#Pq&Rt+4?eIK z51pnu+mZ64LbGYAohl+59XP3*GtDOWPqc(l_q>|&z^ty`ghr(zxIOXM+-)nGyZ}-> z{hYFe@%T$F8Lw(A$IOJxdgeN$x!Ipa4vdh!hWV1rN;+{CG^f}dd4}w7P-G&^+-ACc;TArWK^0yUo@r?}5 z{`&pwS>JO$)T3H7IHSfiZL7akqxv)5bGgK=T9AXEUR3n`>j7cB3+c)>c#Wt~5QqO5kR*a_gJs z_u%Y*jgc&66CUJ{Iv-|VANm_P8Z4ZG1<*+Um%BRYOW9%^7eNfxeU?I2)!B6-u#k~* z-5T*L-3Hhp&Q&=Xg9P1sx>ig*I2ynYWY|8Ijq>2-0UTVu!d&M3whJBnL}rOqmXvJI zlysMNOJb4DrYP)3i&RVfLoZ-zfSr1FG?^b5UGCi6-s#0kOyjp-!+~%Klo+YvO7DmgxB`1gYEztKn2)Fp^Q70M<Fw&6gYNYyRvmJ^0S-zu?($if)-!}Z( zifmbpKlY6&@V5;k5T2wzbf&~pzTm7yp_=8#&v3B6*GYMliT|-HD<5SMnV9v8y+YXR zmze0}Va!=qHxB;i|HdCTC?9KKY9;5THy3rRcW4*W;+Hi_oo+z!_5C+CP`}!YlexDT zAldZ@UQbK6Gs{8F+o!DT5}M`FS>+s&*yY9s|BZj&#^ZOWvB3mYp(wc4?zEAsE`C3`GVSK8AV(knCh@=0n1Aztl7;_y(@d8D&PrFW6 z|2Z}jAdlUREMQ$%Gwkf(6lmRa{F7-cn^?8F;v)e zK-weC=WzLGil}}^v->*YsXQHWzsThM?{G!(ej#DPr8f+R{BfcXav}}v^2cD5$nlAOA1mGs;2{{fLM^|b&1 literal 0 HcmV?d00001 diff --git a/src/assets/BackedUpCloud@3x.png b/src/assets/BackedUpCloud@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f163e91ca3a9f1b25fb19d1e6bec538dce5d006a GIT binary patch literal 15560 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

>K*-scn9}mDAarV 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 literal 0 HcmV?d00001 diff --git a/src/assets/BackupWarning.png b/src/assets/BackupWarning.png new file mode 100644 index 0000000000000000000000000000000000000000..26b2efcec4d2bcd262450f0b3b99e498f583fa4f GIT binary patch literal 2004 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 literal 0 HcmV?d00001 diff --git a/src/assets/BackupWarning@3x.png b/src/assets/BackupWarning@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..c0653184df548a3ea96ee1ea1cf5050af307194d GIT binary patch literal 7266 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 literal 0 HcmV?d00001 diff --git a/src/assets/CloudBackupWarning.png b/src/assets/CloudBackupWarning.png new file mode 100644 index 0000000000000000000000000000000000000000..049461c7af38e49978f6ba880e3ceeeb3fe3cfc8 GIT binary patch literal 1883 zcmV-h2c-CkP)($28cW!vf5bI#804ivum|B}gEI=k7XyZ?UY zJF~k)00000001xn1Ob$;+~tRPs}v3=f*&DBD5Pzn4n`sZ3^ z!>qkO9Hp_)K@b5#D27Z^?SjKNgqa} z*aoI7f;bbJ#R@DV`$tx#=2jX&zJz6UW;U$p2;8@72|hkx4u9l$(G9-}Dj>h-lc*BS z!lNm}(dl-~ZzuRJS~o;E53o$KppDK>aVYzSmG))pa`qD9;gM#hLciD@i>R zled8}git&bYdl+h>sw!~v7OCSirQMDrH>O$n?dDhN>pv4@x3RxCj>EI6L4m#E=C*B z{;XHB?!N8W3TO(2HElZ4C)cGrHuZSsx5HGqH>e$7I>sw!` z%T_>imuaZ7-|kCmgGlxJ022ryzEpi6QSaELT??d>kt(6g|5T~$V|%AB-TFG2FD(FO z5JG%}se)d%#7HB!a&qWgD6c0Z^Q$z!VNUwt7%+nn;z`+zj&v&C51rjRi2giA^yL?k z^@#jF)yDZVH&XH55HNw+F?S68}39S!T|F9J2220*u~fX!~i~7kq_0BcELr9zns4`IKRIB@S=wLwrrF7 zu9~vHJUFzaY45k6Q?BAc)e{p4AwG2BliweG|Ja_h=lXixp{}Q*w$KyeLk=KITH7S`hx}#R(&pq#$p_!4v7IL!OFTq((2(n% zy)-zu^ZoAQ+qa%L(MyGWpx`3+goqGKEFgsV&<(+YVH6A^c@cY3%NI8~R)gz#x9xdh z2{95J$FB6B?)a_y3>AirDTGX484dR+gb**PAR6~|&W1(TQ_|6W{Aw}5APH7Dro|(K z5L>unnm_qPn}5;E=LD-JqQYx*O8u~TA>F_Hc)|pcM+hMH5JG$fU!?vEI{0lv0(!U(~{ z1VV_Pf;X;`W~$z>5QXat`GUhVVK^tat*eT{4#5yWj9@s%pZtQ&f3H{A@QLall`2Sd zf#gcZRJR8vPzmv63KgN)S8YelGpu!?q&goMK_$eWXE+`lM(KuBQG}7F*$)#q2p;B8 z3GpY2Y=;?sRr);f4Etfj2Vuk%LMR?g)r|;wUM0LD$4#?d2p{GULh(|p$|?8xkiVTL z9Ww=pSK>Y}g%FA-QQ^-kgK@p1qF002ovPDHLkV1kQRfjIyG literal 0 HcmV?d00001 diff --git a/src/assets/CloudBackupWarning@2x.png b/src/assets/CloudBackupWarning@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f1894f9f5d70a89f43a84f07c4f14148e601d327 GIT binary patch literal 4263 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 literal 0 HcmV?d00001 diff --git a/src/assets/CloudBackupWarning@3x.png b/src/assets/CloudBackupWarning@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..4133d3d62e095895257f0fbb2064c7a1f2e4d45a GIT binary patch literal 6989 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 literal 0 HcmV?d00001 diff --git a/src/assets/CreateNewWallet@2x.png b/src/assets/CreateNewWallet@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..387f14bfa466dbe8ba39b898a67e5cf2e854ace6 GIT binary patch literal 7491 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

QSs8!Xk$iBfg$$-EGqQIn^;CYh>X`%&8PkvQ6 z?7A532cG_q+g{&^4s`!e2N*f^P@C)@cvKiR5a$7Rlm`#JgN2$yE ziD5az6rP^esfYKBT$2ZV@Yr@HhXMvT&@`~9X;|QBd1iKO`PjF9Z=a7r+|bKJgt}lD zN>ms&5OU^BMFCl_3IaUsy}w+w*R!7U|FDPxNCp}3Zc{R8iYJcd>WY__vgEDUm@Jm( z1JTuc0?k2X(=Rqg)2ov%J$~O0-*D^2C*2QWqfbSIrok}Ks4#3GUL3nLe=Qmo5OM)vAkXka<>c{2Z~WBK!(R43KHkF4 zEm7zjWcNTL0hKI4fB~b`0MI*nhS}lly+K<$aNw{ikJRCas%najWV zJB$AWh?tCHs!f(5vmIeTfEX4Ka^}JkbnU90gExT<8|8+#^87yhdGt@KGJ-WVUbL^2;BddDE^`$+9;AhMc-aje}tr zKqw0Utvyx_U1HYX1;L6Ft}XThjG^$FBo4_wEmwC^i6?h`f=>es1Bud4Wu*2F^ek!0 zW1_3!>!ZnIefln;I2XL4Ilxv~rmvc0jOd$pJ68wo{x8F?P!&BCw5euQBxM zgy(&!LG}8nw~l)EkhdoF)UyL1K(T3-_e7cK1;8Bvy?qO^9g3Iu%v0MQTzmSB7p%G+ z@=~PGQI>P+xqYQ+7!e^vO@qKQrIXHGbL`$R5D?>{WQ>?ucuB@f_~^#eDE)RW8Y!$E zsK{hIv`2;QswMg*So)yd1%?woe8WoMPN?j)l5J&;yD>1#W<;P=7X<8LyrKhw$!DK@ z4M-3aBwaQ2__hi8Riy?_#dro}`bU;u%kk*Twgn_*8BG|We>w&{eD?u_Tn{5;P(C1h z^h3`X5hs^C|Kw|4(FcQ+PzDq+FreFAvt zhkRfqb7p4@LU7+m{4qHuBA@)mWKbSjZVNrSyuz4S)S*DO4gh&nz@WaJ$guy)H!fbf z?8}e*>$OvY3m|U%AzqCdG4>cW9TB9xY5lQ!h(8Mi#b?>d)qhvqB6VJlxO#)a16xBe zJU|$uNViR>?EdH+l$VV0NHH>F_#9d)X4zZH7ky+z0MSP0lji^$*a?pTU;myWD-JpB zU0(*}TIiB}pQMz_8h&k{3^O&#HTqCF34+&NwE044^&ggXJE$Z>1S9ah0ZB(>grKt; zMLRhMEg~6X$QeqgG>&KxPFofD- z_G6$X7@7uxDZyLDDv;!?MH1)F(lGFiUjl~dD%PttvH09mKD*(KkOqS|i)dS}amytr zO@l~{OrSkhm+dJqu=2~_@vW5;i}(MyCXjkZn)1+BD`J<*bt&H3D11&n2yHVisWUt| z78Dr<)Rf0XF2fC*fm=Bj3Q#In8^_YQz9^X3?~qTu{Nit|gg6*N*Ej@#Twr9bvQA9_ zA%^^va+q-pEmrrl{}HEsqj-zdc7(jB^lT_48UXdaJsSZ2a|QtZP|6T|8Gj5lP`ZKb zjx+ssrnfvN>a{^nV`MZyp`S+r32ffL)h!}V{}wDx?*GEqd`d`@WldVhc0g&bW$+*OfcI;KWnDwCP-3I>aJ^HcJ(%G;R

GzYvqDjL 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 M07*qoM6N<$f(9lNxc~qF literal 0 HcmV?d00001 diff --git a/src/assets/ImportSecretPhraseOrPrivateKey@2x.png b/src/assets/ImportSecretPhraseOrPrivateKey@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..475ee5bba99b74d4152c319be1d12c8d35d0e77d GIT binary patch literal 8840 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 Y2Z7G{Ra%BM;{X5v07*qoM6N<$f>2SGOaK4? literal 0 HcmV?d00001 diff --git a/src/assets/ManuallyBackedUp@2x.png b/src/assets/ManuallyBackedUp@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c2a534394872d92c3b913ed520783e2482c6941d GIT binary patch literal 8011 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 aO9dLFX9(2yH7+**KpmzHtyO*={Qm&a(bfn6 literal 0 HcmV?d00001 diff --git a/src/assets/ManuallyBackedUp@3x.png b/src/assets/ManuallyBackedUp@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..6b34943018ab62df17626916823f94986ebc8867 GIT binary patch literal 14979 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 literal 0 HcmV?d00001 diff --git a/src/assets/PairHardwareWallet@2x.png b/src/assets/PairHardwareWallet@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..57479c7e16e9feef66a768531e4d0e6da5d30ffd GIT binary patch literal 8464 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 X`6F^S0EAgq00000NkvXXu0mjfEZ)g| literal 0 HcmV?d00001 diff --git a/src/assets/WalletsAndBackup.png b/src/assets/WalletsAndBackup.png new file mode 100644 index 0000000000000000000000000000000000000000..ab941378faff4a23c2a0728f96ac53708d1565d4 GIT binary patch literal 3104 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

S22orn6Edp(l`I*+$8G7N`~ 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 { return ( }> - {items.map((item: AddWalletItem) => ( - + {items.map((item: AddWalletItem, index: number) => ( + ))} ); diff --git a/src/components/add-wallet/AddWalletRow.tsx b/src/components/add-wallet/AddWalletRow.tsx index 81d476899cb..307453d8d71 100644 --- a/src/components/add-wallet/AddWalletRow.tsx +++ b/src/components/add-wallet/AddWalletRow.tsx @@ -1,28 +1,14 @@ +import React from 'react'; +import { ImageSourcePropType } from 'react-native'; + import { Box, Stack, Text, useForegroundColor } from '@/design-system'; -import { IS_ANDROID, IS_TEST } from '@/env'; import styled from '@/styled-thing'; -import { useTheme } from '@/theme'; -import React from 'react'; -import { GradientText, Text as RNText } from '../text'; import { Icon } from '../icons'; -import ConditionalWrap from 'conditional-wrap'; import { deviceUtils } from '@/utils'; import { ButtonPressAnimation } from '../animations'; - -const RainbowText = styled(GradientText).attrs(({ theme: { colors } }: any) => ({ - angle: false, - colors: colors.gradients.rainbow, - end: { x: 0, y: 0.5 }, - start: { x: 1, y: 0.5 }, - steps: [0, 0.774321, 1], -}))({}); - -const TextIcon = styled(RNText).attrs({ - size: 29, - weight: 'medium', -})({ - marginVertical: IS_ANDROID ? -10 : 0, -}); +import { ImgixImage } from '../images'; +import { Source } from 'react-native-fast-image'; +import { TextColor } from '@/design-system/color/palettes'; const CaretIcon = styled(Icon).attrs(({ color }: { color: string }) => ({ name: 'caret', @@ -34,7 +20,8 @@ const CaretIcon = styled(Icon).attrs(({ color }: { color: string }) => ({ export type AddWalletItem = { title: string; description: string; - icon: string; + descriptionColor?: TextColor; + icon: string | ImageSourcePropType; iconColor?: string; testID?: string; onPress: () => void; @@ -46,19 +33,17 @@ type AddWalletRowProps = { }; export const AddWalletRow = ({ content, totalHorizontalInset }: AddWalletRowProps) => { - const { colors } = useTheme(); const labelQuaternary = useForegroundColor('labelQuaternary'); - const { title, description, icon, iconColor, testID, onPress } = content; + const { title, description, icon, descriptionColor, testID, onPress } = content; // device width - 2 * total horizontal inset from device boundaries - caret column width (30) const contentWidth = deviceUtils.dimensions.width - 2 * totalHorizontalInset - 30; - const shouldUseRainbowText = !iconColor && !(IS_ANDROID && IS_TEST); + const size = 64; return ( - - {children}} - > - {icon} - - ( - - - {children} - - - )} - > - - {title} - - - + + + + {title} + + {description} diff --git a/src/components/asset-list/RecyclerAssetList2/index.tsx b/src/components/asset-list/RecyclerAssetList2/index.tsx index cc27e52e3b7..69fb257fb5c 100644 --- a/src/components/asset-list/RecyclerAssetList2/index.tsx +++ b/src/components/asset-list/RecyclerAssetList2/index.tsx @@ -193,23 +193,6 @@ function NavbarOverlay({ accentColor, position }: { accentColor?: string; positi [handlePressConnectedApps, handlePressQRCode, handlePressSettings] ); - const handlePressMenuItemAndroid = React.useCallback( - (buttonIndex: number) => { - switch (buttonIndex) { - case 0: - handlePressSettings(); - break; - case 1: - handlePressQRCode(); - break; - case 2: - handlePressConnectedApps(); - break; - } - }, - [handlePressConnectedApps, handlePressQRCode, handlePressSettings] - ); - return ( item?.actionTitle)} cancelButtonIndex={menuConfig.menuItems.length - 1} - onPressActionSheet={handlePressMenuItemAndroid} + onPressActionSheet={(buttonIndex: number) => { + handlePressMenuItem({ nativeEvent: { actionKey: menuConfig.menuItems[buttonIndex]?.actionKey } }); + }} > diff --git a/src/components/backup/AddWalletToCloudBackupStep.tsx b/src/components/backup/AddWalletToCloudBackupStep.tsx new file mode 100644 index 00000000000..62f92a99e2f --- /dev/null +++ b/src/components/backup/AddWalletToCloudBackupStep.tsx @@ -0,0 +1,123 @@ +import React, { useCallback } from 'react'; +import { Bleed, Box, Inline, Inset, Separator, Stack, Text } from '@/design-system'; +import * as lang from '@/languages'; +import { ImgixImage } from '../images'; +import WalletsAndBackupIcon from '@/assets/WalletsAndBackup.png'; +import { Source } from 'react-native-fast-image'; +import { cloudPlatform } from '@/utils/platform'; +import { ButtonPressAnimation } from '../animations'; +import Routes from '@/navigation/routesNames'; +import { useNavigation } from '@/navigation'; +import { useWallets } from '@/hooks'; +import { WalletCountPerType, useVisibleWallets } from '@/screens/SettingsSheet/useVisibleWallets'; +import { format } from 'date-fns'; +import { useCreateBackup } from './useCreateBackup'; +import { login } from '@/handlers/cloudBackup'; + +const imageSize = 72; + +export default function AddWalletToCloudBackupStep() { + const { goBack } = useNavigation(); + const { wallets, selectedWallet } = useWallets(); + + const walletTypeCount: WalletCountPerType = { + phrase: 0, + privateKey: 0, + }; + + const { lastBackupDate } = useVisibleWallets({ wallets, walletTypeCount }); + + const { onSubmit } = useCreateBackup({ + walletId: selectedWallet.id, + navigateToRoute: { + route: Routes.SETTINGS_SHEET, + params: { + screen: Routes.SETTINGS_SECTION_BACKUP, + }, + }, + }); + + const potentiallyLoginAndSubmit = useCallback(async () => { + await login(); + return onSubmit({}); + }, [onSubmit]); + + const onMaybeLater = useCallback(() => goBack(), [goBack]); + + return ( + + + + + + {lang.t(lang.l.back_up.cloud.add_wallet_to_cloud_backups)} + + + + + + + + + potentiallyLoginAndSubmit().then(success => success && goBack())}> + + + + + 􀎽{' '} + {lang.t(lang.l.back_up.cloud.back_to_cloud_platform_now, { + cloudPlatform, + })} + + + + + + + + + + + + + + + + {lang.t(lang.l.back_up.cloud.mayber_later)} + + + + + + + + + + + {lastBackupDate && ( + + + + + {lang.t(lang.l.back_up.cloud.latest_backup, { + date: format(lastBackupDate, "M/d/yy 'at' h:mm a"), + })} + + + + + )} + + ); +} diff --git a/src/components/backup/BackupChooseProviderStep.tsx b/src/components/backup/BackupChooseProviderStep.tsx new file mode 100644 index 00000000000..da9520335df --- /dev/null +++ b/src/components/backup/BackupChooseProviderStep.tsx @@ -0,0 +1,216 @@ +import React from 'react'; +import { useCreateBackup } from '@/components/backup/useCreateBackup'; +import { Bleed, Box, Inline, Inset, Separator, Stack, Text } from '@/design-system'; +import * as lang from '@/languages'; +import { ImgixImage } from '../images'; +import WalletsAndBackupIcon from '@/assets/WalletsAndBackup.png'; +import ManuallyBackedUpIcon from '@/assets/ManuallyBackedUp.png'; +import Caret from '@/assets/family-dropdown-arrow.png'; +import { Source } from 'react-native-fast-image'; +import { cloudPlatform } from '@/utils/platform'; +import { useTheme } from '@/theme'; +import { ButtonPressAnimation } from '../animations'; +import { useNavigation } from '@/navigation'; +import Routes from '@/navigation/routesNames'; +import { SETTINGS_BACKUP_ROUTES } from '@/screens/SettingsSheet/components/Backups/routes'; +import { useWallets } from '@/hooks'; +import walletTypes from '@/helpers/walletTypes'; +import walletBackupTypes from '@/helpers/walletBackupTypes'; +import { IS_ANDROID } from '@/env'; +import { GoogleDriveUserData, getGoogleAccountUserData, isCloudBackupAvailable, login } from '@/handlers/cloudBackup'; +import { WrappedAlert as Alert } from '@/helpers/alert'; +import { RainbowError, logger } from '@/logger'; +import { Linking } from 'react-native'; + +const imageSize = 72; + +export default function BackupSheetSectionNoProvider() { + const { colors } = useTheme(); + const { navigate, goBack } = useNavigation(); + const { selectedWallet } = useWallets(); + + const { onSubmit, loading } = useCreateBackup({ + walletId: selectedWallet.id, + navigateToRoute: { + route: Routes.SETTINGS_SHEET, + params: { + screen: Routes.SETTINGS_SECTION_BACKUP, + }, + }, + }); + + const onCloudBackup = async () => { + if (loading !== 'none') { + return; + } + // NOTE: On Android we need to make sure the user is signed into a Google account before trying to backup + // otherwise we'll fake backup and it's confusing... + if (IS_ANDROID) { + try { + await login(); + getGoogleAccountUserData().then((accountDetails: GoogleDriveUserData | undefined) => { + if (!accountDetails) { + Alert.alert(lang.t(lang.l.back_up.errors.no_account_found)); + return; + } + }); + } catch (e) { + Alert.alert(lang.t(lang.l.back_up.errors.no_account_found)); + logger.error(e as RainbowError); + } + } else { + const isAvailable = await isCloudBackupAvailable(); + if (!isAvailable) { + Alert.alert( + lang.t(lang.l.modal.back_up.alerts.cloud_not_enabled.label), + lang.t(lang.l.modal.back_up.alerts.cloud_not_enabled.description), + [ + { + onPress: () => { + Linking.openURL('https://support.apple.com/en-us/HT204025'); + }, + text: lang.t(lang.l.modal.back_up.alerts.cloud_not_enabled.show_me), + }, + { + style: 'cancel', + text: lang.t(lang.l.modal.back_up.alerts.cloud_not_enabled.no_thanks), + }, + ] + ); + return; + } + } + + onSubmit({}); + }; + + const onManualBackup = async () => { + const title = + selectedWallet?.imported && selectedWallet.type === walletTypes.privateKey ? selectedWallet.addresses[0].label : selectedWallet.name; + + goBack(); + navigate(Routes.SETTINGS_SHEET, { + screen: SETTINGS_BACKUP_ROUTES.SECRET_WARNING, + params: { + isBackingUp: true, + title, + backupType: walletBackupTypes.manual, + walletId: selectedWallet.id, + }, + }); + }; + + return ( + + + + {lang.t(lang.l.back_up.cloud.how_would_you_like_to_backup)} + + + + + + + + {/* replace this with BackUpMenuButton */} + + + + + + + + + + + {lang.t(lang.l.back_up.cloud.cloud_backup)} + + + + {lang.t(lang.l.back_up.cloud.recommended_for_beginners)} + {' '} + {lang.t(lang.l.back_up.cloud.choose_backup_cloud_description, { + cloudPlatform, + })} + + + + + + + + + + + + + + + + + + + + + + + + + + + + {lang.t(lang.l.back_up.cloud.manual_backup)} + + + {lang.t(lang.l.back_up.cloud.choose_backup_manual_description)} + + + + + + + + + + + + + + ); +} diff --git a/src/components/backup/BackupCloudStep.js b/src/components/backup/BackupCloudStep.js deleted file mode 100644 index 1b5a94c3145..00000000000 --- a/src/components/backup/BackupCloudStep.js +++ /dev/null @@ -1,307 +0,0 @@ -import { useRoute } from '@react-navigation/native'; -import { captureMessage } from '@sentry/react-native'; -import * as lang from '@/languages'; -import React, { useCallback, useEffect, useRef, useState } from 'react'; -import { InteractionManager, Keyboard } from 'react-native'; -import { passwordStrength } from 'check-password-strength'; -import { isSamsungGalaxy } from '../../helpers/samsung'; -import { saveBackupPassword } from '../../model/backup'; -import { cloudPlatform } from '../../utils/platform'; -import { DelayedAlert } from '../alerts'; -import { PasswordField } from '../fields'; -import { Centered, ColumnWithMargins } from '../layout'; -import { GradientText, Text } from '../text'; -import BackupSheetKeyboardLayout from './BackupSheetKeyboardLayout'; -import { analytics } from '@/analytics'; -import { cloudBackupPasswordMinLength, isCloudBackupPasswordValid } from '@/handlers/cloudBackup'; -import showWalletErrorAlert from '@/helpers/support'; -import { useDimensions, useMagicAutofocus, useRouteExistsInNavigationState, useWalletCloudBackup, useWallets } from '@/hooks'; -import { useNavigation } from '@/navigation'; -import Routes from '@/navigation/routesNames'; -import styled from '@/styled-thing'; -import { padding } from '@/styles'; -import logger from '@/utils/logger'; - -const DescriptionText = styled(Text).attrs(({ isTinyPhone, theme: { colors } }) => ({ - align: 'center', - color: colors.alpha(colors.blueGreyDark, 0.5), - lineHeight: 'looser', - size: isTinyPhone ? 'lmedium' : 'large', -}))({}); - -const ImportantText = styled(DescriptionText).attrs(({ theme: { colors } }) => ({ - color: colors.alpha(colors.blueGreyDark, 0.6), - weight: 'medium', -}))({}); - -const Masthead = styled(Centered).attrs({ - direction: 'column', -})(({ isTallPhone, isTinyPhone }) => ({ - ...padding.object(isTinyPhone ? 0 : 9, isTinyPhone ? 10 : 50, isTallPhone ? 39 : 19), - flexShrink: 0, -})); - -const MastheadIcon = styled(GradientText).attrs(({ theme: { colors } }) => ({ - align: 'center', - angle: false, - colors: colors.gradients.rainbow, - end: { x: 0, y: 0.5 }, - size: 43, - start: { x: 1, y: 0.5 }, - steps: [0, 0.774321, 1], - weight: 'medium', -}))({}); - -const Title = styled(Text).attrs(({ isTinyPhone }) => ({ - size: isTinyPhone ? 'large' : 'big', - weight: 'bold', -}))(({ isTinyPhone }) => ({ - ...(isTinyPhone ? padding.object(0) : padding.object(15, 0, 12)), -})); - -const samsungGalaxy = (android && isSamsungGalaxy()) || false; - -export default function BackupCloudStep() { - const { isTallPhone, isTinyPhone } = useDimensions(); - const currentlyFocusedInput = useRef(); - const { goBack } = useNavigation(); - const { params } = useRoute(); - const walletCloudBackup = useWalletCloudBackup(); - const { selectedWallet, isDamaged } = useWallets(); - const [validPassword, setValidPassword] = useState(false); - const [isKeyboardOpen, setIsKeyboardOpen] = useState(false); - const [passwordFocused, setPasswordFocused] = useState(true); - const [password, setPassword] = useState(''); - const [confirmPassword, setConfirmPassword] = useState(''); - const { navigate } = useNavigation(); - const keyboardShowListener = useRef(null); - const keyboardHideListener = useRef(null); - - useEffect(() => { - const keyboardDidShow = () => { - setIsKeyboardOpen(true); - }; - - const keyboardDidHide = () => { - setIsKeyboardOpen(false); - }; - keyboardShowListener.current = Keyboard.addListener('keyboardDidShow', keyboardDidShow); - keyboardHideListener.current = Keyboard.addListener('keyboardDidHide', keyboardDidHide); - if (isDamaged) { - showWalletErrorAlert(); - captureMessage('Damaged wallet preventing cloud backup'); - goBack(); - } - return () => { - keyboardShowListener.current?.remove(); - keyboardHideListener.current?.remove(); - }; - }, [goBack, isDamaged]); - - const isSettingsRoute = useRouteExistsInNavigationState(Routes.SETTINGS_SHEET); - - const walletId = params?.walletId || selectedWallet.id; - - const [label, setLabel] = useState( - !validPassword - ? `􀙶 ${lang.t(lang.l.back_up.confirm_password.add_to_cloud_platform, { - cloudPlatformName: cloudPlatform, - })}` - : `􀎽 ${lang.t(lang.l.back_up.confirm_password.confirm_backup)}` - ); - const passwordRef = useRef(); - const confirmPasswordRef = useRef(); - - useEffect(() => { - setTimeout(() => { - passwordRef.current?.focus(); - }, 1); - analytics.track('Choose Password Step', { - category: 'backup', - label: cloudPlatform, - }); - }, []); - - const { handleFocus } = useMagicAutofocus(passwordRef); - - const onPasswordFocus = useCallback( - target => { - handleFocus(target); - setPasswordFocused(true); - currentlyFocusedInput.current = passwordRef.current; - }, - [handleFocus] - ); - - const onConfirmPasswordFocus = useCallback( - target => { - handleFocus(target); - currentlyFocusedInput.current = confirmPasswordRef.current; - }, - [handleFocus] - ); - - const onPasswordBlur = useCallback(() => { - setPasswordFocused(false); - }, []); - - const onPasswordSubmit = useCallback(() => { - confirmPasswordRef.current?.focus(); - }, []); - - useEffect(() => { - let passwordIsValid = false; - if (password === confirmPassword && isCloudBackupPasswordValid(password)) { - passwordIsValid = true; - } - - let newLabel = ''; - if (passwordIsValid) { - newLabel = `􀎽 ${lang.t(lang.l.back_up.cloud.password.confirm_backup)}`; - } else if (password.length < cloudBackupPasswordMinLength) { - newLabel = lang.t('back_up.cloud.password.minimum_characters', { - minimumLength: cloudBackupPasswordMinLength, - }); - } else if ( - // TODO FIXME This branch of the if/else will never execute - // eslint-disable-next-line no-dupe-else-if - password !== '' && - password.length < cloudBackupPasswordMinLength && - !passwordRef.current?.isFocused() - ) { - newLabel = lang.t(lang.l.back_up.cloud.password.use_a_longer_password); - } else if ( - isCloudBackupPasswordValid(password) && - isCloudBackupPasswordValid(confirmPassword) && - confirmPassword.length >= password.length && - password !== confirmPassword - ) { - newLabel = lang.t(lang.l.back_up.cloud.password.passwords_dont_match); - } else if (password.length >= cloudBackupPasswordMinLength && !passwordFocused) { - newLabel = lang.t(lang.l.back_up.cloud.password.confirm_password); - } else if (password.length >= cloudBackupPasswordMinLength && passwordFocused) { - const passInfo = passwordStrength(password); - switch (passInfo.id) { - case 0: - case 1: - newLabel = `💩 ${lang.t(lang.l.back_up.cloud.password.strength.level1)}`; - break; - case 2: - newLabel = `👌 ${lang.t(lang.l.back_up.cloud.password.strength.level2)}`; - break; - case 3: - newLabel = `💪 ${lang.t(lang.l.back_up.cloud.password.strength.level3)}`; - break; - case 4: - newLabel = `🏰️ ${lang.t(lang.l.back_up.cloud.password.strength.level4)}`; - break; - default: - } - } - - setValidPassword(passwordIsValid); - setLabel(newLabel); - }, [confirmPassword, password, passwordFocused]); - - const onPasswordChange = useCallback(({ nativeEvent: { text: inputText } }) => { - setPassword(inputText); - }, []); - - const onConfirmPasswordChange = useCallback(({ nativeEvent: { text: inputText } }) => { - setConfirmPassword(inputText); - }, []); - - const onError = useCallback( - msg => { - setTimeout(onPasswordSubmit, 1000); - DelayedAlert({ title: msg }, 500); - }, - [onPasswordSubmit] - ); - - const onSuccess = useCallback(async () => { - logger.log('BackupCloudStep:: saving backup password'); - await saveBackupPassword(password); - if (!isSettingsRoute) { - DelayedAlert({ title: lang.t(lang.l.cloud.backup_success) }, 1000); - } - // This means the user set a new password - // and it was the first wallet backed up - analytics.track('Backup Complete', { - category: 'backup', - label: cloudPlatform, - }); - goBack(); - }, [goBack, isSettingsRoute, password]); - - const onConfirmBackup = useCallback(async () => { - analytics.track('Tapped "Confirm Backup"'); - - await walletCloudBackup({ - onError, - onSuccess, - password, - walletId, - }); - }, [onError, onSuccess, password, walletCloudBackup, walletId]); - - const showExplainerConfirmation = useCallback(async () => { - android && Keyboard.dismiss(); - navigate(Routes.EXPLAIN_SHEET, { - onClose: () => { - InteractionManager.runAfterInteractions(() => { - setTimeout(() => { - onConfirmBackup(); - }, 300); - }); - }, - type: 'backup', - }); - }, [navigate, onConfirmBackup]); - - const onConfirmPasswordSubmit = useCallback(() => { - validPassword && showExplainerConfirmation(); - }, [showExplainerConfirmation, validPassword]); - - return ( - - - {(isTinyPhone || samsungGalaxy) && isKeyboardOpen ? null : 􀌍} - {lang.t(lang.l.back_up.cloud.password.choose_a_password)} - - {lang.t(lang.l.back_up.cloud.password.a_password_youll_remember)} -   - {lang.t(lang.l.back_up.cloud.password.it_cant_be_recovered)} - - - - - = password.length && confirmPassword !== password - } - isValid={validPassword} - onChange={onConfirmPasswordChange} - onFocus={onConfirmPasswordFocus} - onSubmitEditing={onConfirmPasswordSubmit} - password={confirmPassword} - placeholder={lang.t(lang.l.back_up.cloud.password.confirm_placeholder)} - ref={confirmPasswordRef} - /> - - - ); -} diff --git a/src/components/backup/BackupCloudStep.tsx b/src/components/backup/BackupCloudStep.tsx new file mode 100644 index 00000000000..e839d9323c0 --- /dev/null +++ b/src/components/backup/BackupCloudStep.tsx @@ -0,0 +1,256 @@ +import React, { useCallback, useEffect, useRef, useState } from 'react'; +import { RouteProp, useRoute } from '@react-navigation/native'; +import { Source } from 'react-native-fast-image'; +import { KeyboardArea } from 'react-native-keyboard-area'; + +import * as lang from '@/languages'; +import { sharedCoolModalTopOffset } from '@/navigation/config'; +import { cloudPlatform } from '@/utils/platform'; +import { PasswordField } from '@/components/fields'; +import { Text } from '@/components/text'; +import WalletAndBackup from '@/assets/WalletsAndBackup.png'; +import { analytics } from '@/analytics'; +import { cloudBackupPasswordMinLength, isCloudBackupPasswordValid } from '@/handlers/cloudBackup'; +import { useDimensions, useMagicAutofocus, useWallets } from '@/hooks'; +import styled from '@/styled-thing'; +import { padding } from '@/styles'; +import { Box, Inset, Stack } from '@/design-system'; +import { ImgixImage } from '../images'; +import { IS_ANDROID } from '@/env'; +import { RainbowButton } from '../buttons'; +import RainbowButtonTypes from '../buttons/rainbow-button/RainbowButtonTypes'; +import { usePasswordValidation } from './usePasswordValidation'; +import { TextInput } from 'react-native'; +import { useTheme } from '@/theme'; +import { useNavigation } from '@/navigation'; +import Routes from '@/navigation/routesNames'; +import { SETTINGS_BACKUP_ROUTES } from '@/screens/SettingsSheet/components/Backups/routes'; +import walletTypes from '@/helpers/walletTypes'; + +type BackupCloudStepParams = { + BackupCloudStep: { + isFromWalletReadyPrompt?: boolean; + walletId?: string; + onSuccess: (password: string) => Promise; + onCancel: () => Promise; + }; +}; + +type NativeEvent = { + nativeEvent: { + text: string; + }; +}; + +export function BackupCloudStep() { + const { isDarkMode } = useTheme(); + const { goBack } = useNavigation(); + const { width: deviceWidth, height: deviceHeight } = useDimensions(); + const { params } = useRoute>(); + const [password, setPassword] = useState(''); + const [confirmPassword, setConfirmPassword] = useState(''); + + const { onSuccess, onCancel, isFromWalletReadyPrompt = false } = params; + + const { validPassword, label, labelColor } = usePasswordValidation(password, confirmPassword); + + const currentlyFocusedInput = useRef(null); + const passwordRef = useRef(null); + const confirmPasswordRef = useRef(null); + + useEffect(() => { + setTimeout(() => { + passwordRef.current?.focus(); + }, 1); + analytics.track('Choose Password Step', { + category: 'backup', + label: cloudPlatform, + }); + }, []); + + const { handleFocus } = useMagicAutofocus(passwordRef); + + const onTextInputFocus = useCallback( + (target: any, isConfirm = false) => { + const ref = isConfirm ? confirmPasswordRef.current : passwordRef.current; + handleFocus(target); + currentlyFocusedInput.current = ref; + }, + [handleFocus] + ); + + const onPasswordSubmit = useCallback(() => { + confirmPasswordRef.current?.focus(); + }, []); + + const onPasswordChange = useCallback(({ nativeEvent: { text: inputText } }: NativeEvent) => { + setPassword(inputText); + setConfirmPassword(''); + }, []); + + const onConfirmPasswordChange = useCallback(({ nativeEvent: { text: inputText } }: NativeEvent) => { + setConfirmPassword(inputText); + }, []); + + const onSuccessAndNavigateBack = useCallback( + async (password: string) => { + if (!isFromWalletReadyPrompt) { + goBack(); + } + + onSuccess(password); + }, + [goBack, isFromWalletReadyPrompt, onSuccess] + ); + + useEffect(() => { + return () => { + if (!password) { + onCancel(); + } + }; + }, []); + + return ( + + + + + + + {lang.t(lang.l.back_up.cloud.password.choose_a_password)} + + {lang.t(lang.l.back_up.cloud.password.a_password_youll_remember_part_one)} +   + {lang.t(lang.l.back_up.cloud.password.not)} +   + {lang.t(lang.l.back_up.cloud.password.a_password_youll_remember_part_two)} + + + + + onTextInputFocus(target)} + onSubmitEditing={onPasswordSubmit} + password={password} + placeholder={lang.t(lang.l.back_up.cloud.password.backup_password)} + ref={passwordRef} + returnKeyType="next" + textContentType="newPassword" + /> + {isCloudBackupPasswordValid(password) && ( + = password.length && confirmPassword !== password + } + isValid={validPassword} + onChange={onConfirmPasswordChange} + onFocus={(target: any) => onTextInputFocus(target, true)} + onSubmitEditing={() => onSuccessAndNavigateBack(password)} + password={confirmPassword} + placeholder={lang.t(lang.l.back_up.cloud.password.confirm_placeholder)} + ref={confirmPasswordRef} + /> + )} + + {label} + + + + + {validPassword && ( + onSuccessAndNavigateBack(password)} + /> + )} + + {!validPassword && ( + + + {`􀎽 ${lang.t(lang.l.back_up.cloud.back_up_to_platform, { + cloudPlatformName: cloudPlatform, + })}`} + + + )} + + {IS_ANDROID ? : null} + + + + ); +} + +export default BackupCloudStep; + +const DescriptionText = styled(Text).attrs(({ theme: { colors }, color }: any) => ({ + align: 'left', + color: color || colors.alpha(colors.blueGreyDark, 0.5), + lineHeight: 'looser', + size: 'lmedium', + weight: 'medium', +}))({}); + +const KeyboardSizeView = styled(KeyboardArea)({ + backgroundColor: ({ theme: { colors } }: any) => colors.transparent, +}); + +const ImportantText = styled(DescriptionText).attrs(({ theme: { colors } }: any) => ({ + color: colors.red, + weight: 'bold', +}))({}); + +const Masthead = styled(Box).attrs({ + direction: 'column', +})({ + ...padding.object(0, 0, 16), + gap: 8, + flexShrink: 0, +}); + +const Title = styled(Text).attrs({ + size: 'big', + weight: 'heavy', +})({ + ...padding.object(12, 0, 0), +}); + +const ButtonText = styled(Text).attrs(({ theme: { colors }, color }: any) => ({ + align: 'center', + letterSpacing: 'rounded', + color: color || colors.alpha(colors.blueGreyDark, 0.5), + size: 'larger', + weight: 'heavy', + numberOfLines: 1, +}))({}); diff --git a/src/components/backup/BackupConfirmPasswordStep.js b/src/components/backup/BackupConfirmPasswordStep.js deleted file mode 100644 index e8d9cc9a5d3..00000000000 --- a/src/components/backup/BackupConfirmPasswordStep.js +++ /dev/null @@ -1,175 +0,0 @@ -import { useRoute } from '@react-navigation/native'; -import lang from 'i18n-js'; -import React, { useCallback, useEffect, useRef, useState } from 'react'; -import { Keyboard } from 'react-native'; -import { isSamsungGalaxy } from '../../helpers/samsung'; -import { saveBackupPassword } from '../../model/backup'; -import { cloudPlatform } from '../../utils/platform'; -import { DelayedAlert } from '../alerts'; -import { PasswordField } from '../fields'; -import { Centered, Column } from '../layout'; -import { GradientText, Text } from '../text'; -import BackupSheetKeyboardLayout from './BackupSheetKeyboardLayout'; -import { analytics } from '@/analytics'; -import { cloudBackupPasswordMinLength, isCloudBackupPasswordValid } from '@/handlers/cloudBackup'; -import { useBooleanState, useDimensions, useRouteExistsInNavigationState, useWalletCloudBackup, useWallets } from '@/hooks'; -import { useNavigation } from '@/navigation'; -import Routes from '@/navigation/routesNames'; -import styled from '@/styled-thing'; -import { margin, padding } from '@/styles'; -import logger from '@/utils/logger'; - -const DescriptionText = styled(Text).attrs(({ theme: { colors } }) => ({ - align: 'center', - color: colors.alpha(colors.blueGreyDark, 0.5), - lineHeight: 'looser', - size: 'large', -}))({ - ...padding.object(0, 50), -}); - -const Masthead = styled(Centered).attrs({ - direction: 'column', -})({ - ...padding.object(24, 0, 42), - flexShrink: 0, -}); - -const MastheadIcon = styled(GradientText).attrs({ - align: 'center', - angle: false, - colors: ['#FFB114', '#FF54BB', '#00F0FF'], - end: { x: 0, y: 0 }, - letterSpacing: 'roundedTight', - size: 52, - start: { x: 1, y: 1 }, - steps: [0, 0.5, 1], - weight: 'bold', -})({}); - -const Title = styled(Text).attrs({ - size: 'big', - weight: 'bold', -})({ - ...margin.object(15, 0, 12), -}); - -const samsungGalaxy = (android && isSamsungGalaxy()) || false; - -export default function BackupConfirmPasswordStep() { - const { isTinyPhone } = useDimensions(); - const { params } = useRoute(); - const { goBack } = useNavigation(); - const walletCloudBackup = useWalletCloudBackup(); - const [isKeyboardOpen, setIsKeyboardOpen] = useState(false); - const [validPassword, setValidPassword] = useState(false); - const [passwordFocused, setPasswordFocused, setPasswordBlurred] = useBooleanState(true); - const [password, setPassword] = useState(''); - const [label, setLabel] = useState(`􀎽 ${lang.t('back_up.confirm_password.confirm_backup')}`); - const passwordRef = useRef(); - const keyboardShowListener = useRef(null); - const keyboardHideListener = useRef(null); - const { selectedWallet } = useWallets(); - const walletId = params?.walletId || selectedWallet.id; - - const isSettingsRoute = useRouteExistsInNavigationState(Routes.SETTINGS_SHEET); - - useEffect(() => { - const keyboardDidShow = () => { - setIsKeyboardOpen(true); - }; - - const keyboardDidHide = () => { - setIsKeyboardOpen(false); - }; - keyboardShowListener.current = Keyboard.addListener('keyboardDidShow', keyboardDidShow); - keyboardHideListener.current = Keyboard.addListener('keyboardDidHide', keyboardDidHide); - return () => { - keyboardShowListener.current?.remove(); - keyboardHideListener.current?.remove(); - }; - }, []); - - useEffect(() => { - analytics.track('Confirm Password Step', { - category: 'backup', - label: cloudPlatform, - }); - }, []); - - useEffect(() => { - let passwordIsValid = false; - - if (isCloudBackupPasswordValid(password)) { - passwordIsValid = true; - setLabel( - `􀑙 ${lang.t('back_up.confirm_password.add_to_cloud_platform', { - cloudPlatformName: cloudPlatform, - })}` - ); - } - setValidPassword(passwordIsValid); - }, [password, passwordFocused]); - - const onPasswordChange = useCallback(({ nativeEvent: { text: inputText } }) => { - setPassword(inputText); - }, []); - - const onError = useCallback(msg => { - passwordRef.current?.focus(); - DelayedAlert({ title: msg }, 500); - }, []); - - const onSuccess = useCallback(async () => { - logger.log('BackupConfirmPasswordStep:: saving backup password'); - await saveBackupPassword(password); - if (!isSettingsRoute) { - DelayedAlert({ title: lang.t('cloud.backup_success') }, 1000); - } - // This means the user didn't have the password saved - // and at least an other wallet already backed up - analytics.track('Backup Complete via Confirm Step', { - category: 'backup', - label: cloudPlatform, - }); - goBack(); - }, [goBack, isSettingsRoute, password]); - - const onSubmit = useCallback(async () => { - if (!validPassword) return; - analytics.track('Tapped "Restore from cloud"'); - await walletCloudBackup({ - onError, - onSuccess, - password, - walletId, - }); - }, [onError, onSuccess, password, validPassword, walletCloudBackup, walletId]); - - return ( - - - {(isTinyPhone || samsungGalaxy) && isKeyboardOpen ? null : 􀙶} - {lang.t('back_up.confirm_password.enter_backup_password')} - - {lang.t('back_up.confirm_password.enter_backup_description', { - cloudPlatformName: cloudPlatform, - })} - - - - - - - ); -} diff --git a/src/components/backup/BackupManualStep.js b/src/components/backup/BackupManualStep.js deleted file mode 100644 index 8aecf52cd31..00000000000 --- a/src/components/backup/BackupManualStep.js +++ /dev/null @@ -1,137 +0,0 @@ -import { useRoute } from '@react-navigation/native'; -import lang from 'i18n-js'; -import React, { Fragment, useCallback, useEffect, useState } from 'react'; -import { View } from 'react-native'; -import { useTheme } from '../../theme/ThemeContext'; -import { Column, Row } from '../layout'; -import { SheetActionButton } from '../sheet'; -import { Nbsp, Text } from '../text'; -import { analytics } from '@/analytics'; -import WalletTypes from '@/helpers/walletTypes'; -import { useDimensions, useWalletManualBackup, useWallets } from '@/hooks'; -import { useNavigation } from '@/navigation'; -import styled from '@/styled-thing'; -import { padding } from '@/styles'; -import { SecretDisplaySection } from '@/components/secret-display/SecretDisplaySection'; - -const Content = styled(Column).attrs({ - align: 'center', - justify: 'start', -})({ - flexGrow: 1, - flexShrink: 0, - paddingTop: ({ isTallPhone, isSmallPhone }) => (android ? 30 : isTallPhone ? 45 : isSmallPhone ? 10 : 25), -}); - -const Footer = styled(Column).attrs({ - justify: 'center', -})({ - ...padding.object(0, 15, 21), - - marginBottom: android ? 30 : 0, - width: '100%', -}); - -const Masthead = styled(Column).attrs({ - align: 'center', - justify: 'start', -})({}); - -const MastheadDescription = styled(Text).attrs(({ theme: { colors } }) => ({ - align: 'center', - color: colors.alpha(colors.blueGreyDark, 0.6), - lineHeight: 'looser', - size: 'lmedium', -}))({ - maxWidth: 291, -}); - -const MastheadIcon = styled(Text).attrs({ - align: 'center', - color: 'appleBlue', - size: 21, - weight: 'heavy', -})({}); - -const MastheadTitle = styled(Text).attrs({ - align: 'center', - size: 'larger', - weight: 'bold', -})({ - ...padding.object(8), -}); - -const MastheadTitleRow = styled(Row).attrs({ - align: 'center', - justify: 'start', -})({ - paddingTop: 18, -}); - -export default function BackupManualStep() { - const { isTallPhone, isSmallPhone } = useDimensions(); - const { goBack } = useNavigation(); - const { selectedWallet } = useWallets(); - const { onManuallyBackupWalletId } = useWalletManualBackup(); - const { params } = useRoute(); - const walletId = params?.walletId || selectedWallet.id; - const { colors } = useTheme(); - - const [type, setType] = useState(null); - const [secretLoaded, setSecretLoaded] = useState(false); - - const onComplete = useCallback(() => { - analytics.track(`Tapped "I've saved the secret"`, { - type, - }); - onManuallyBackupWalletId(walletId); - analytics.track('Backup Complete', { - category: 'backup', - label: 'manual', - }); - goBack(); - }, [goBack, onManuallyBackupWalletId, type, walletId]); - - useEffect(() => { - analytics.track('Manual Backup Step', { - category: 'backup', - label: 'manual', - }); - }, []); - - return ( - - - - 􀉆 - {lang.t('back_up.manual.label')} - - - - {type === WalletTypes.privateKey ? lang.t('back_up.manual.pkey.these_keys') : lang.t('back_up.manual.seed.these_keys')} - - - {type === WalletTypes.privateKey ? lang.t('back_up.manual.pkey.save_them') : lang.t('back_up.manual.seed.save_them')} - - - - - -

- - ); -} diff --git a/src/components/backup/BackupManuallyStep.tsx b/src/components/backup/BackupManuallyStep.tsx new file mode 100644 index 00000000000..211eda2d196 --- /dev/null +++ b/src/components/backup/BackupManuallyStep.tsx @@ -0,0 +1,98 @@ +import React, { useCallback } from 'react'; +import { Bleed, Box, Inline, Inset, Separator, Stack, Text } from '@/design-system'; +import * as lang from '@/languages'; +import { ImgixImage } from '../images'; +import ManuallyBackedUpIcon from '@/assets/ManuallyBackedUp.png'; +import { Source } from 'react-native-fast-image'; +import { ButtonPressAnimation } from '../animations'; +import { useNavigation } from '@/navigation'; +import Routes from '@/navigation/routesNames'; +import { useWallets } from '@/hooks'; +import walletTypes from '@/helpers/walletTypes'; +import { SETTINGS_BACKUP_ROUTES } from '@/screens/SettingsSheet/components/Backups/routes'; +import walletBackupTypes from '@/helpers/walletBackupTypes'; + +const imageSize = 72; + +export default function BackupManuallyStep() { + const { navigate, goBack } = useNavigation(); + const { selectedWallet } = useWallets(); + + const onManualBackup = async () => { + const title = + selectedWallet?.imported && selectedWallet.type === walletTypes.privateKey ? selectedWallet.addresses[0].label : selectedWallet.name; + + goBack(); + navigate(Routes.SETTINGS_SHEET, { + screen: SETTINGS_BACKUP_ROUTES.SECRET_WARNING, + params: { + isBackingUp: true, + title, + backupType: walletBackupTypes.manual, + walletId: selectedWallet.id, + }, + }); + }; + + const onMaybeLater = useCallback(() => goBack(), [goBack]); + + return ( + + + + + + {lang.t(lang.l.back_up.manual.backup_manually_now)} + + + + + + + + + + + + + + {lang.t(lang.l.back_up.manual.back_up_now)} + + + + + + + + + + + + + + + + {lang.t(lang.l.back_up.manual.already_backed_up)} + + + + + + + + + + + ); +} diff --git a/src/components/backup/BackupRainbowButton.tsx b/src/components/backup/BackupRainbowButton.tsx new file mode 100644 index 00000000000..614153a2767 --- /dev/null +++ b/src/components/backup/BackupRainbowButton.tsx @@ -0,0 +1,121 @@ +import MaskedView from '@react-native-masked-view/masked-view'; +import React from 'react'; +import { useTheme } from '@/theme'; +import { ButtonPressAnimation } from '@/components/animations'; +import { RowWithMargins } from '@/components/layout'; +import { Text } from '@/components/text'; +import RainbowButtonTypes from '@/components/buttons/rainbow-button/RainbowButtonTypes'; +import { useDimensions } from '@/hooks'; +import styled from '@/styled-thing'; +import { shadow } from '@/styles'; +import ShadowView from '@/react-native-shadow-stack/ShadowView'; +import BackupRainbowButtonBackground from './BackupRainbowButtonBackground'; +import { View } from 'react-native'; + +const ButtonContainer = styled(MaskedView).attrs({ + pointerEvents: 'none', +})(({ width, height }: any) => ({ + height, + width, +})); + +const ButtonContent = styled(RowWithMargins).attrs({ + align: 'center', + margin: -2.5, +})({ + alignSelf: 'center', + bottom: 2, + height: '100%', +}); + +const ButtonLabel = styled(Text).attrs(({ disabled, type, theme: { colors, isDarkMode } }: any) => ({ + align: type === RainbowButtonTypes.addCash ? 'left' : 'center', + color: isDarkMode && disabled ? colors.white : colors.whiteLabel, + letterSpacing: type === RainbowButtonTypes.addCash ? 'roundedTight' : 'rounded', + size: type === RainbowButtonTypes.small ? 'large' : 'larger', + weight: type === RainbowButtonTypes.small ? 'bold' : 'heavy', + numberOfLines: 1, +}))({}); + +const OuterButton = styled(View)(({ height, width, isDarkMode, disabled, strokeWidth, theme: { colors } }: any) => ({ + ...shadow.buildAsObject(0, 5, 15, colors.shadow), + backgroundColor: colors.dark, + borderRadius: height / 2 + strokeWidth, + height, + shadowOpacity: isDarkMode && disabled ? 0 : isDarkMode ? 0.1 : 0.4, + width, +})); + +const Shadow = styled(ShadowView)(({ height, strokeWidth, isDarkMode, disabled, width, theme: { colors } }: any) => ({ + ...shadow.buildAsObject(0, 10, 30, colors.shadow, 1), + backgroundColor: colors.white, + borderRadius: height / 2 + strokeWidth, + height, + opacity: isDarkMode && disabled ? 0 : android ? 1 : 0.2, + position: 'absolute', + width, +})); + +type BackupRainbowButtonProps = { + disabled?: boolean; + height?: number; + label?: string; + onPress?: () => void; + strokeWidth?: number; + width?: number; + overflowMargin?: number; + skipTopMargin?: boolean; +}; + +const BackupRainbowButton = ({ + disabled = false, + height = 56, + label = 'Press me', + onPress, + strokeWidth = 1, + width, + overflowMargin = 35, + skipTopMargin = true, + ...props +}: BackupRainbowButtonProps) => { + const { isDarkMode } = useTheme(); + + const { width: deviceWidth } = useDimensions(); + const maxButtonWidth = deviceWidth - 30; + + const btnStrokeWidth = disabled ? 0.5 : strokeWidth; + const btnWidth = width || maxButtonWidth; + + const outerButtonMask = ( + + ); + + return ( + + + + + + + {label} + + + + + ); +}; + +export default BackupRainbowButton; diff --git a/src/components/buttons/rainbow-button/RainbowButtonBackground.js b/src/components/backup/BackupRainbowButtonBackground.tsx similarity index 73% rename from src/components/buttons/rainbow-button/RainbowButtonBackground.js rename to src/components/backup/BackupRainbowButtonBackground.tsx index 7b415585ae7..75059a18ecc 100644 --- a/src/components/buttons/rainbow-button/RainbowButtonBackground.js +++ b/src/components/backup/BackupRainbowButtonBackground.tsx @@ -1,25 +1,28 @@ +/* eslint-disable no-nested-ternary */ import MaskedView from '@react-native-masked-view/masked-view'; import React from 'react'; import { View } from 'react-native'; import RadialGradient from 'react-native-radial-gradient'; -import { darkModeThemeColors } from '../../../styles/colors'; -import { useTheme } from '../../../theme/ThemeContext'; -import RainbowButtonTypes from './RainbowButtonTypes'; +import { darkModeThemeColors } from '@/styles/colors'; +import { useTheme } from '@/theme'; +import RainbowButtonTypes from '@/components/buttons/rainbow-button/RainbowButtonTypes'; import styled from '@/styled-thing'; import { margin } from '@/styles'; import { magicMemo } from '@/utils'; -const RainbowGradientColorsFactory = darkMode => ({ +const RainbowGradientColorsFactory = (darkMode: boolean) => ({ inner: { - addCash: ['#FFB114', '#FF54BB', '#00F0FF'], default: darkModeThemeColors.gradients.rainbow, + backup: ['#14C7FF', '#7654FF', '#930AFF'], + disabledBackup: darkModeThemeColors.transparent, disabled: darkMode ? [darkModeThemeColors.blueGreyDark20, darkModeThemeColors.blueGreyDark20, darkModeThemeColors.blueGreyDark20] : ['#B0B3B9', '#B0B3B9', '#B0B3B9'], }, outer: { - addCash: ['#F5AA13', '#F551B4', '#00E6F5'], default: ['#F5AA13', '#F551B4', '#799DD5'], + backup: ['#14C7FF', '#7654FF', '#930AFF'], + disabledBackup: darkModeThemeColors.transparent, disabled: darkMode ? [darkModeThemeColors.blueGreyDark20, darkModeThemeColors.blueGreyDark20, darkModeThemeColors.blueGreyDark20] : ['#A5A8AE', '#A5A8AE', '#A5A8AE'], @@ -29,7 +32,7 @@ const RainbowGradientColorsFactory = darkMode => ({ const RainbowGradientColorsDark = RainbowGradientColorsFactory(true); const RainbowGradientColorsLight = RainbowGradientColorsFactory(false); -const RainbowButtonGradient = styled(RadialGradient).attrs(({ type, width }) => ({ +const RainbowButtonGradient = styled(RadialGradient).attrs(({ type, width }: any) => ({ radius: width, stops: type === RainbowButtonTypes.addCash ? [0, 0.544872, 1] : [0, 0.774321, 1], }))({ @@ -37,7 +40,7 @@ const RainbowButtonGradient = styled(RadialGradient).attrs(({ type, width }) => transform: [{ scaleY: 0.7884615385 }], }); -const InnerButton = styled(View)(({ strokeWidth, height, width, theme: { colors } }) => ({ +const InnerButton = styled(View)(({ strokeWidth, height, width, theme: { colors } }: any) => ({ ...margin.object(strokeWidth), backgroundColor: colors.dark, borderRadius: height / 2 - strokeWidth, @@ -45,25 +48,27 @@ const InnerButton = styled(View)(({ strokeWidth, height, width, theme: { colors width: width - strokeWidth * 2, })); -const InnerGradient = styled(RainbowButtonGradient).attrs(({ disabled, type, gradientColors }) => ({ +const InnerGradient = styled(RainbowButtonGradient).attrs(({ disabled, type, gradientColors }: any) => ({ colors: disabled - ? gradientColors.inner.disabled + ? type === RainbowButtonTypes.backup + ? gradientColors.inner.disabledBackup + : gradientColors.inner.disabled : type === RainbowButtonTypes.addCash ? gradientColors.inner.addCash : gradientColors.inner.default, -}))(({ width, height }) => ({ +}))(({ width, height }: any) => ({ height: width, top: -(width - height) / 2, width, })); -const OuterGradient = styled(RainbowButtonGradient).attrs(({ disabled, type, gradientColors }) => ({ +const OuterGradient = styled(RainbowButtonGradient).attrs(({ disabled, type, gradientColors }: any) => ({ colors: disabled ? gradientColors.outer.disabled : type === RainbowButtonTypes.addCash ? gradientColors.outer.addCash : gradientColors.outer.default, -}))(({ width, height }) => ({ +}))(({ width, height }: any) => ({ height: width * 2, left: -width / 2, top: -(width - height / 2), @@ -71,15 +76,23 @@ const OuterGradient = styled(RainbowButtonGradient).attrs(({ disabled, type, gra })); const WrapperView = android - ? styled.View({ - height: ({ height }) => height, + ? styled(View)({ + height: ({ height }: any) => height, overflow: 'hidden', position: 'absolute', - width: ({ width }) => width, + width: ({ width }: any) => width, }) - : ({ children }) => children; + : ({ children }: any) => children; -const RainbowButtonBackground = ({ disabled, height, strokeWidth, type, width }) => { +type RainbowButtonBackgroundProps = { + disabled: boolean; + height: number; + strokeWidth: number; + type: RainbowButtonTypes; + width: number; +}; + +const RainbowButtonBackground = ({ disabled, height, strokeWidth, type, width }: RainbowButtonBackgroundProps) => { const { isDarkMode } = useTheme(); const gradientColors = isDarkMode ? RainbowGradientColorsDark : RainbowGradientColorsLight; diff --git a/src/components/backup/BackupSheet.tsx b/src/components/backup/BackupSheet.tsx new file mode 100644 index 00000000000..be2bd57ebd8 --- /dev/null +++ b/src/components/backup/BackupSheet.tsx @@ -0,0 +1,58 @@ +import { RouteProp, useRoute } from '@react-navigation/native'; +import React, { useCallback } from 'react'; +import { BackupCloudStep, RestoreCloudStep } from '.'; +import WalletBackupStepTypes from '@/helpers/walletBackupStepTypes'; +import BackupChooseProviderStep from '@/components/backup/BackupChooseProviderStep'; +import { BackgroundProvider } from '@/design-system'; +import { SimpleSheet } from '@/components/sheet/SimpleSheet'; +import AddWalletToCloudBackupStep from '@/components/backup/AddWalletToCloudBackupStep'; +import BackupManuallyStep from './BackupManuallyStep'; +import { getHeightForStep } from '@/navigation/config'; +import { CloudBackupProvider } from './CloudBackupProvider'; + +type BackupSheetParams = { + BackupSheet: { + longFormHeight?: number; + missingPassword?: boolean; + step?: string; + walletId?: string; + nativeScreen?: boolean; + }; +}; + +export default function BackupSheet() { + const { params: { step = WalletBackupStepTypes.no_provider } = {} } = useRoute>(); + + const renderStep = useCallback(() => { + switch (step) { + case WalletBackupStepTypes.backup_now_to_cloud: + return ; + case WalletBackupStepTypes.backup_now_manually: + return ; + case WalletBackupStepTypes.backup_cloud: + return ; + case WalletBackupStepTypes.restore_from_backup: + return ; + case WalletBackupStepTypes.no_provider: + default: + return ; + } + }, [step]); + + return ( + + + {({ backgroundColor }) => ( + + {renderStep()} + + )} + + + ); +} diff --git a/src/components/backup/BackupSheetKeyboardLayout.js b/src/components/backup/BackupSheetKeyboardLayout.js deleted file mode 100644 index ef9386b8fe8..00000000000 --- a/src/components/backup/BackupSheetKeyboardLayout.js +++ /dev/null @@ -1,43 +0,0 @@ -import { useRoute } from '@react-navigation/native'; -import React from 'react'; -import { KeyboardArea } from 'react-native-keyboard-area'; -import { RainbowButton } from '../buttons'; -import { Column } from '../layout'; -import { SheetHandleFixedToTopHeight } from '../sheet'; -import KeyboardTypes from '@/helpers/keyboardTypes'; -import { useDimensions, useKeyboardHeight } from '@/hooks'; -import { sharedCoolModalTopOffset } from '@/navigation/config'; -import styled from '@/styled-thing'; -import { padding } from '@/styles'; - -const Footer = styled(Column)(({ isTallPhone }) => ({ - ...padding.object(20, 15, isTallPhone ? 65 : 50), - flexShrink: 0, - width: '100%', -})); - -const KeyboardSizeView = styled(KeyboardArea)({ - backgroundColor: ({ theme: { colors } }) => colors.transparent, -}); - -export default function BackupSheetKeyboardLayout({ children, footerButtonDisabled, footerButtonLabel, onSubmit, type }) { - const { params: { nativeScreen } = {} } = useRoute(); - const { height: deviceHeight, isTallPhone } = useDimensions(); - const keyboardHeight = useKeyboardHeight({ - keyboardType: KeyboardTypes.password, - }); - - const platformKeyboardHeight = android ? (type === 'restore' ? -10 : -30) : keyboardHeight; - - const sheetRegionAboveKeyboardHeight = deviceHeight - platformKeyboardHeight - sharedCoolModalTopOffset - SheetHandleFixedToTopHeight; - - return ( - - {children} -
- -
- {android ? : null} -
- ); -} diff --git a/src/components/backup/BackupSheetKeyboardLayout.tsx b/src/components/backup/BackupSheetKeyboardLayout.tsx new file mode 100644 index 00000000000..41ab5848657 --- /dev/null +++ b/src/components/backup/BackupSheetKeyboardLayout.tsx @@ -0,0 +1,62 @@ +import React, { PropsWithChildren } from 'react'; +import { KeyboardArea } from 'react-native-keyboard-area'; +import { RainbowButton } from '../buttons'; +import { Column } from '../layout'; +import styled from '@/styled-thing'; +import { padding } from '@/styles'; +import { Box } from '@/design-system'; +import { useDimensions } from '@/hooks'; +import { sharedCoolModalTopOffset } from '@/navigation/config'; +import RainbowButtonTypes from '../buttons/rainbow-button/RainbowButtonTypes'; + +const Footer = styled(Column)({ + ...padding.object(0, 24, 0), + flexShrink: 0, + justifyContent: 'flex-end', + width: '100%', + position: 'absolute', + bottom: 0, +}); + +const KeyboardSizeView = styled(KeyboardArea)({ + backgroundColor: ({ theme: { colors } }: any) => colors.transparent, +}); + +type BackupSheetKeyboardLayoutProps = PropsWithChildren<{ + footerButtonDisabled: boolean; + footerButtonLabel: string; + onSubmit: () => void; + type: 'backup' | 'restore'; +}>; + +type BackupSheetKeyboardLayout = { + BackupSheetKeyboardLayout: { + params: { + nativeButton?: boolean; + }; + }; +}; + +const MIN_HEIGHT = 740; + +export default function BackupSheetKeyboardLayout({ + children, + footerButtonDisabled, + footerButtonLabel, + onSubmit, +}: BackupSheetKeyboardLayoutProps) { + const { height: deviceHeight } = useDimensions(); + + const isSmallPhone = deviceHeight < MIN_HEIGHT; + const contentHeight = deviceHeight - (!isSmallPhone ? sharedCoolModalTopOffset : 0) - 100; + + return ( + + {children} +
+ +
+ {android ? : null} +
+ ); +} diff --git a/src/components/backup/BackupSheetSection.js b/src/components/backup/BackupSheetSection.tsx similarity index 59% rename from src/components/backup/BackupSheetSection.js rename to src/components/backup/BackupSheetSection.tsx index a2fa56d8412..cb658f224bd 100644 --- a/src/components/backup/BackupSheetSection.js +++ b/src/components/backup/BackupSheetSection.tsx @@ -1,21 +1,18 @@ import React, { Fragment, useEffect } from 'react'; import { useTheme } from '../../theme/ThemeContext'; -import Divider from '../Divider'; import { RainbowButton } from '../buttons'; import { Column, ColumnWithMargins } from '../layout'; import { SheetActionButton } from '../sheet'; import { Text } from '../text'; import { analytics } from '@/analytics'; -import BackupIcon from '@/assets/backupIcon.png'; -import BackupIconDark from '@/assets/backupIconDark.png'; -import { ImgixImage } from '@/components/images'; import styled from '@/styled-thing'; import { padding } from '@/styles'; +import { Bleed, Separator } from '@/design-system'; const Footer = styled(ColumnWithMargins).attrs({ margin: 19, })({ - ...padding.object(19, 15, 32), + ...padding.object(32, 15, 32), width: '100%', }); @@ -23,28 +20,26 @@ const Masthead = styled(Column).attrs({ align: 'center', justify: 'start', })({ + ...padding.object(32, 24, 40), flex: 1, - paddingTop: 8, }); -const MastheadDescription = styled(Text).attrs(({ theme: { colors } }) => ({ - align: 'center', - color: colors.alpha(colors.blueGreyDark, 0.5), - lineHeight: 'looser', - size: 'large', -}))({ ...padding.object(12, 42, 30) }); +type MaybePromise = T | Promise; -const MastheadIcon = styled(ImgixImage).attrs({ - resizeMode: ImgixImage.resizeMode.contain, -})({ - height: 74, - marginBottom: -1, - width: 75, - size: 75, -}); +type BackupSheetSectionProps = { + headerIcon?: React.ReactNode; + onPrimaryAction: () => MaybePromise; + onSecondaryAction: () => void; + primaryButtonTestId: string; + primaryLabel: string; + secondaryButtonTestId: string; + secondaryLabel: string; + titleText: string; + type: string; +}; export default function BackupSheetSection({ - descriptionText, + headerIcon, onPrimaryAction, onSecondaryAction, primaryButtonTestId, @@ -53,8 +48,8 @@ export default function BackupSheetSection({ secondaryLabel, titleText, type, -}) { - const { colors, isDarkMode } = useTheme(); +}: BackupSheetSectionProps) { + const { colors } = useTheme(); useEffect(() => { analytics.track('BackupSheet shown', { category: 'backup', @@ -65,13 +60,14 @@ export default function BackupSheetSection({ return ( - - + {headerIcon} + {titleText} - {descriptionText} - + + +