From 323cc37269b67c4672d48ed284726b889083657a Mon Sep 17 00:00:00 2001 From: Finnian Jacobson-Schulte <140328381+finnian0826@users.noreply.github.com> Date: Wed, 12 Jun 2024 10:23:40 -0600 Subject: [PATCH 1/9] feat(onboarding): Keyless Backup Setup Fail in Onboarding Flow --- locales/base/translation.json | 3 +- src/analytics/Events.tsx | 2 ++ src/analytics/Properties.tsx | 2 ++ src/analytics/docs.ts | 2 ++ src/keylessBackup/KeylessBackupProgress.tsx | 33 ++++++++++++++++++--- 5 files changed, 37 insertions(+), 5 deletions(-) diff --git a/locales/base/translation.json b/locales/base/translation.json index 9456eed2c7..f59c1baaeb 100644 --- a/locales/base/translation.json +++ b/locales/base/translation.json @@ -129,7 +129,8 @@ "title": "Backup unavailable", "body": "You can set up wallet backup later or protect your account now by saving your recovery phrase.", "later": "I'll set up backup later", - "manual": "Save recovery phrase" + "manual": "Save recovery phrase", + "skip": "Skip (not recommended)" } }, "restore": { diff --git a/src/analytics/Events.tsx b/src/analytics/Events.tsx index 82e710a80c..d82fa0e831 100644 --- a/src/analytics/Events.tsx +++ b/src/analytics/Events.tsx @@ -112,6 +112,8 @@ export enum KeylessBackupEvents { cab_progress_completed_continue = 'cab_progress_completed_continue', cab_progress_failed_later = 'cab_progress_failed_later', cab_progress_failed_manual = 'cab_progress_failed_manual', + cab_progress_failed_manual_onboarding = 'cab_progress_failed_manual_onboarding', + cab_progress_failed_skip_onboarding = 'cab_progress_failed_skip_onboarding', cab_post_encrypted_mnemonic_failed = 'cab_post_encrypted_mnemonic_failed', cab_torus_keyshare_timeout = 'cab_torus_keyshare_timeout', cab_handle_keyless_backup_failed = 'cab_handle_keyless_backup_failed', diff --git a/src/analytics/Properties.tsx b/src/analytics/Properties.tsx index 7b22f7d793..0e0300de7f 100644 --- a/src/analytics/Properties.tsx +++ b/src/analytics/Properties.tsx @@ -265,6 +265,8 @@ interface KeylessBackupEventsProperties { [KeylessBackupEvents.cab_progress_completed_continue]: undefined [KeylessBackupEvents.cab_progress_failed_later]: undefined [KeylessBackupEvents.cab_progress_failed_manual]: undefined + [KeylessBackupEvents.cab_progress_failed_manual_onboarding]: undefined + [KeylessBackupEvents.cab_progress_failed_skip_onboarding]: undefined [KeylessBackupEvents.cab_post_encrypted_mnemonic_failed]: { backupAlreadyExists: boolean } diff --git a/src/analytics/docs.ts b/src/analytics/docs.ts index 2e3039957c..ecb06a996a 100644 --- a/src/analytics/docs.ts +++ b/src/analytics/docs.ts @@ -144,6 +144,8 @@ export const eventDocs: Record = { [KeylessBackupEvents.cab_progress_completed_continue]: ``, [KeylessBackupEvents.cab_progress_failed_later]: ``, [KeylessBackupEvents.cab_progress_failed_manual]: ``, + [KeylessBackupEvents.cab_progress_failed_manual_onboarding]: ``, + [KeylessBackupEvents.cab_progress_failed_skip_onboarding]: ``, [KeylessBackupEvents.cab_post_encrypted_mnemonic_failed]: ``, [KeylessBackupEvents.cab_torus_keyshare_timeout]: ``, [KeylessBackupEvents.cab_handle_keyless_backup_failed]: `When keyless backup fails to generate store encrypted mnemonic for setup or fails to retrieve and decrypt mnemonic for restore`, diff --git a/src/keylessBackup/KeylessBackupProgress.tsx b/src/keylessBackup/KeylessBackupProgress.tsx index 3bb2083b04..6aa7245bc7 100644 --- a/src/keylessBackup/KeylessBackupProgress.tsx +++ b/src/keylessBackup/KeylessBackupProgress.tsx @@ -32,6 +32,11 @@ import Logger from 'src/utils/Logger' const TAG = 'keylessBackup/KeylessBackupProgress' +export enum Origin { + Onboarding = 'Onboarding', + Settings = 'Settings', +} + function KeylessBackupProgress({ route, navigation, @@ -254,6 +259,8 @@ function Setup() { const keylessBackupStatus = useSelector(keylessBackupStatusSelector) const { t } = useTranslation() + const navigatedFromSettings = true // use prop to determine + const onPressContinue = () => { ValoraAnalytics.track(KeylessBackupEvents.cab_progress_completed_continue) navigateHome() @@ -276,6 +283,16 @@ function Setup() { navigate(Screens.Settings) } + const onPressManualOnboarding = () => { + ValoraAnalytics.track(KeylessBackupEvents.cab_progress_failed_manual_onboarding) + navigate(Screens.AccountKeyEducation) + } + + const onPressSkip = () => { + ValoraAnalytics.track(KeylessBackupEvents.cab_progress_failed_skip_onboarding) + navigate(Screens.ChooseYourAdventure) + } + switch (keylessBackupStatus) { case KeylessBackupStatus.InProgress: { return renderInProgressState(t('keylessBackupStatus.setup.inProgress.title')) @@ -312,8 +329,12 @@ function Setup() {