Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New onboarding integration (happy paths) #17045

Merged
merged 12 commits into from
Jan 21, 2025

Conversation

jrainville
Copy link
Member

@jrainville jrainville commented Jan 9, 2025

What does the PR do

Fixes #17044
(I'll create a new issue for unhappy paths)

Branched on top of #16722

Integrates all the non-keycard flows for the new onboarding. All happy paths for those should work, including the pairing fallback.

Do note that the new onboarding only applies for new users. If you have a profile already, it will show the old startup/login/onboarding.
This is because the new screens for the Login are not implemented yet and the LoginView is super tied with the old startup module, so it's not worth it to extract it.

To use the new onboarding, you need to delete or rename your data folder.
Then, run the app with export FLAG_ONBOARDING_V2_ENABLED=1.

Affected areas

None by default, because all of the new stuff is behind a feature flag.

The only thing that goes outside the scope of the feature flag is a small change on the status-go side to enable creating accounts without a displayName. (status-go PR: status-im/status-go#6242)

Otherwise, if the feature flag is activated, the new onboarding module will be initiated instead of the old one and the new onboarding screens will show, but only for new users.

Architecture compliance

Screenshot of functionality (including design for comparison)

  • I've checked the design and this PR matches it

All flows except pairing (ignore the last part, I forgot to remove the forced error on pairing):
new-onboarding.webm

Pairing:
new-onboarding-pairing.webm

Impact on end user

Nothing for now as it's hidden behind the feature flag

How to test

  • Clear or rename your data folder
  • Launch with export FLAG_ONBOARDING_V2_ENABLED=1

Risk

Tick one:

  • Low risk: 2 devs MUST perform testing as specified above and attach their results as comments to this PR before merging.
  • High risk: QA team MUST perform additional testing in the specified affected areas before merging.

Low risk because it is behind a feature flag, but it would be better to have it tested by a QA still to catch bugs as early as possible

@jrainville jrainville requested review from micieslak, caybro, alexjba and a team as code owners January 9, 2025 20:28
@jrainville jrainville requested review from glitchminer, a team and igor-sirotin and removed request for a team January 9, 2025 20:28
@jrainville
Copy link
Member Author

I'll squash later, don't worry 😄

@status-im-auto
Copy link
Member

status-im-auto commented Jan 9, 2025

Jenkins Builds

Click to see older builds (56)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 7d095bc #1 2025-01-09 20:37:31 ~9 min tests/nim 📄log
✔️ 7d095bc #1 2025-01-09 20:37:41 ~9 min macos/aarch64 🍎dmg
7d095bc #1 2025-01-09 20:41:50 ~13 min tests/ui 📄log
✔️ 7d095bc #1 2025-01-09 20:46:15 ~17 min linux-nix/x86_64 📦tgz
✔️ 7d095bc #1 2025-01-09 20:49:10 ~20 min linux/x86_64 📦tgz
✔️ 7d095bc #1 2025-01-09 20:50:11 ~21 min macos/x86_64 🍎dmg
✔️ 7d095bc #1 2025-01-09 20:50:43 ~22 min windows/x86_64 💿exe
✔️ 779c488 #2 2025-01-10 15:15:25 ~8 min macos/aarch64 🍎dmg
✔️ 779c488 #2 2025-01-10 15:16:20 ~8 min tests/nim 📄log
779c488 #2 2025-01-10 15:20:52 ~13 min tests/ui 📄log
✔️ 779c488 #2 2025-01-10 15:23:01 ~15 min linux-nix/x86_64 📦tgz
✔️ 779c488 #2 2025-01-10 15:25:22 ~18 min linux/x86_64 📦tgz
✔️ 779c488 #2 2025-01-10 15:26:40 ~19 min macos/x86_64 🍎dmg
✔️ 779c488 #2 2025-01-10 15:28:36 ~21 min windows/x86_64 💿exe
✔️ f3b437f #3 2025-01-10 17:39:52 ~7 min macos/aarch64 🍎dmg
✔️ f3b437f #3 2025-01-10 17:41:39 ~8 min tests/nim 📄log
f3b437f #3 2025-01-10 17:45:30 ~12 min tests/ui 📄log
✔️ f3b437f #3 2025-01-10 17:47:35 ~14 min linux-nix/x86_64 📦tgz
✔️ f3b437f #3 2025-01-10 17:49:25 ~16 min macos/x86_64 🍎dmg
✔️ f3b437f #3 2025-01-10 17:49:51 ~17 min linux/x86_64 📦tgz
✔️ f3b437f #3 2025-01-10 17:52:04 ~19 min windows/x86_64 💿exe
✔️ 77b5d44 #4 2025-01-10 18:22:10 ~6 min macos/aarch64 🍎dmg
✔️ 77b5d44 #4 2025-01-10 18:24:44 ~8 min tests/nim 📄log
77b5d44 #4 2025-01-10 18:28:02 ~12 min tests/ui 📄log
✔️ 77b5d44 #4 2025-01-10 18:30:43 ~14 min macos/x86_64 🍎dmg
✔️ 77b5d44 #4 2025-01-10 18:35:11 ~19 min linux-nix/x86_64 📦tgz
✔️ 77b5d44 #4 2025-01-10 18:35:16 ~19 min linux/x86_64 📦tgz
✔️ 77b5d44 #4 2025-01-10 18:35:28 ~19 min windows/x86_64 💿exe
✔️ 77b5d44 #5 2025-01-14 09:58:52 ~8 min tests/nim 📄log
✔️ 77b5d44 #5 2025-01-14 09:59:43 ~9 min macos/aarch64 🍎dmg
77b5d44 #5 2025-01-14 10:02:35 ~12 min tests/ui 📄log
✔️ 77b5d44 #5 2025-01-14 10:03:29 ~13 min macos/x86_64 🍎dmg
✔️ 77b5d44 #5 2025-01-14 10:08:56 ~18 min linux-nix/x86_64 📦tgz
✔️ 77b5d44 #5 2025-01-14 10:12:07 ~21 min windows/x86_64 💿exe
✔️ 77b5d44 #5 2025-01-14 10:14:00 ~24 min linux/x86_64 📦tgz
✔️ bb284bd #6 2025-01-14 14:43:02 ~7 min macos/aarch64 🍎dmg
✔️ bb284bd #6 2025-01-14 14:45:41 ~10 min tests/nim 📄log
✔️ bb284bd #6 2025-01-14 14:50:15 ~14 min tests/ui 📄log
✔️ bb284bd #6 2025-01-14 14:51:59 ~16 min macos/x86_64 🍎dmg
✔️ bb284bd #6 2025-01-14 14:58:44 ~22 min windows/x86_64 💿exe
✔️ bb284bd #6 2025-01-14 14:58:53 ~23 min linux/x86_64 📦tgz
✔️ bb284bd #6 2025-01-14 15:00:08 ~24 min linux-nix/x86_64 📦tgz
5b2d30f #7 2025-01-16 16:32:43 ~2 min macos/aarch64 📄log
5b2d30f #7 2025-01-16 16:34:40 ~4 min macos/x86_64 📄log
✔️ 5b2d30f #7 2025-01-16 16:39:18 ~9 min tests/nim 📄log
5b2d30f #7 2025-01-16 16:43:09 ~13 min tests/ui 📄log
✔️ 5b2d30f #7 2025-01-16 16:47:51 ~18 min linux/x86_64 📦tgz
✔️ 5b2d30f #7 2025-01-16 16:50:37 ~20 min windows/x86_64 💿exe
✔️ 5b2d30f #7 2025-01-16 16:53:56 ~24 min linux-nix/x86_64 📦tgz
✔️ 3a0e9b9 #8 2025-01-16 17:10:38 ~6 min macos/aarch64 🍎dmg
✔️ 3a0e9b9 #8 2025-01-16 17:13:26 ~9 min tests/nim 📄log
✔️ 3a0e9b9 #8 2025-01-16 17:17:01 ~13 min tests/ui 📄log
✔️ 3a0e9b9 #8 2025-01-16 17:17:34 ~13 min macos/x86_64 🍎dmg
✔️ 3a0e9b9 #8 2025-01-16 17:22:41 ~18 min windows/x86_64 💿exe
✔️ 3a0e9b9 #8 2025-01-16 17:24:50 ~21 min linux/x86_64 📦tgz
✔️ 3a0e9b9 #8 2025-01-16 17:26:01 ~22 min linux-nix/x86_64 📦tgz
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ c13a96b #9 2025-01-21 14:50:46 ~6 min macos/aarch64 🍎dmg
✔️ c13a96b #9 2025-01-21 14:53:08 ~9 min tests/nim 📄log
✔️ c13a96b #9 2025-01-21 14:56:31 ~12 min tests/ui 📄log
✔️ c13a96b #9 2025-01-21 14:57:41 ~13 min macos/x86_64 🍎dmg
✔️ c13a96b #9 2025-01-21 15:01:15 ~17 min linux/x86_64 📦tgz
✔️ c13a96b #9 2025-01-21 15:03:25 ~19 min linux-nix/x86_64 📦tgz
✔️ c13a96b #9 2025-01-21 15:05:26 ~21 min windows/x86_64 💿exe
✔️ 8537b0a #10 2025-01-21 19:46:29 ~4 min macos/aarch64 🍎dmg
✔️ 8537b0a #10 2025-01-21 19:50:57 ~9 min tests/nim 📄log
✔️ 8537b0a #10 2025-01-21 19:53:06 ~11 min macos/x86_64 🍎dmg
✔️ 8537b0a #10 2025-01-21 19:54:39 ~12 min tests/ui 📄log
✔️ 8537b0a #10 2025-01-21 19:59:30 ~17 min linux-nix/x86_64 📦tgz
✔️ 8537b0a #10 2025-01-21 20:01:36 ~19 min windows/x86_64 💿exe
✔️ 8537b0a #10 2025-01-21 20:05:02 ~23 min linux/x86_64 📦tgz

Copy link
Member

@caybro caybro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice stuff! Some comments inline

ui/app/AppLayouts/Onboarding2/stores/OnboardingStore.qml Outdated Show resolved Hide resolved
ui/main.qml Outdated
stack.clear()
stack.push(splashScreenV2, { runningProgressAnimation: true })
}
onKeycardFactoryResetRequested: {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should start the keycard factory reset in a popup; something TODO

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I haven't done any of the keycard flows yet. I'll need Igor's work for that

ui/main.qml Outdated Show resolved Hide resolved
ui/main.qml Outdated Show resolved Hide resolved
ui/main.qml Show resolved Hide resolved
ui/app/AppLayouts/Onboarding2/pages/SyncProgressPage.qml Outdated Show resolved Hide resolved
src/app/modules/onboarding/module.nim Show resolved Hide resolved
ui/app/AppLayouts/Onboarding2/LoginBySyncingFlow.qml Outdated Show resolved Hide resolved
ui/main.qml Outdated Show resolved Hide resolved
ui/main.qml Show resolved Hide resolved
@jrainville jrainville force-pushed the feat/new-onbaording-integration branch from 779c488 to f3b437f Compare January 10, 2025 17:32
@jrainville
Copy link
Member Author

@caybro thanks for the review. I addressed you comments

Copy link
Member

@caybro caybro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍

@micieslak micieslak force-pushed the feat/onboarding-rework-1 branch 2 times, most recently from d5524fd to 35b8620 Compare January 13, 2025 11:27
Base automatically changed from feat/onboarding-rework-1 to master January 14, 2025 09:49
@caybro caybro requested review from a team as code owners January 14, 2025 09:49
@caybro caybro requested review from dlipicar and removed request for a team January 14, 2025 09:49
@jrainville jrainville force-pushed the feat/new-onbaording-integration branch from 77b5d44 to bb284bd Compare January 14, 2025 14:35
@glitchminer
Copy link
Contributor

glitchminer commented Jan 16, 2025

@jrainville @caybro , I still have to complete the syncing flows but here's a summary of findings from the others.

14,16,17 are functional, the others are UI.

# Screen Actual Expected Figma Notes
1 Privacy policy and Terms of use pop up Button labeled “OK” Button labeled “Done” https://www.figma.com/design/Lw4nPYQcZOPOwTgETiiIYo/Desktop-Onboarding-Redesign?node-id=884-50497&m=dev
2 Privacy policy and Terms of Use pop up External links are highlighted in blue but do nothing when clicked Links to URLs and email open in external app https://www.figma.com/design/Lw4nPYQcZOPOwTgETiiIYo/Desktop-Onboarding-Redesign?node-id=884-51045&m=dev
3 Privacy policy and Terms of Use pop up Version is at the top, license is at the bottom. Footer section containing version and license. https://www.figma.com/design/Lw4nPYQcZOPOwTgETiiIYo/Desktop-Onboarding-Redesign?node-id=884-51045&m=dev
4 Help us improve Status Button labeled “OK” Button labeled “Got it” https://www.figma.com/design/Lw4nPYQcZOPOwTgETiiIYo/Desktop-Onboarding-Redesign?node-id=884-50314&m=dev
5 Create Profile Title “Create your profile” Title “Create Profile” https://www.figma.com/design/Lw4nPYQcZOPOwTgETiiIYo/Desktop-Onboarding-Redesign?node-id=884-41033&m=dev
6 Create profile password Minimum 10 characters error appears after changing focus to second password field. No Figma
7 Create profile password No separate indicator for having met 10 char. requirement. Separate indicator above password field for having met 10 char. requirement. https://www.figma.com/design/Lw4nPYQcZOPOwTgETiiIYo/Desktop-Onboarding-Redesign?node-id=884-44139&m=dev
8 Create profile password 100 char max error appears under input fields. No red border on input. 100 char. max error appears above password fields. Red border on input field. https://www.figma.com/design/Lw4nPYQcZOPOwTgETiiIYo/Desktop-Onboarding-Redesign?node-id=884-44672&m=dev
9 Create profile password No indicator appears when passwords in both input fields match Indicator above repeat password field confirming that passwords match https://www.figma.com/design/Lw4nPYQcZOPOwTgETiiIYo/Desktop-Onboarding-Redesign?node-id=884-44398&m=dev
10 Create profile password Resetting the field (deleting all chars.) gives and error "Only ASCII letters, numbers, and symbols are allowed". This assumes that all users know what ASCII is. No Figma
11 Create profile password The passwords don't match error only appears when the length of the strings in both fields match - the error is cleared if the repeated password input is longer No Figma
12 Info icons (create profile password, etc.) Info icons are highlighted even when they are not hovered or clicked on Info icons highlighted only on hover or click https://www.figma.com/design/Lw4nPYQcZOPOwTgETiiIYo/Desktop-Onboarding-Redesign?node-id=236-23932&m=dev
13 Create profile password Strength indicator bar mixes indication of strength and password length. This is not immediately clear.It's possible to meet all the requirements and have the bar show very weak and also 100%. No Figma for what triggers each label of strength or completeness.
14 Biometrics Touch ID prompt did not appear - biometrics were not enabled. https://www.figma.com/design/Lw4nPYQcZOPOwTgETiiIYo/Desktop-Onboarding-Redesign?node-id=8-1131&m=dev
15 Biometrics No back button, is this intentional ?
16 Main screen 3 word display name is set, this is invalid in profile settings and must be changed to proceed.
17 Main screen If metrics were not shared at "help us improve status" then the user is prompted again
18 Seed phrase entry After pasting, focus remains on the 11th, 16th or 21st field instead of the final one
19 Seed phrase entry On completion of a valid word the focus is moved to the next field automatically, this is convenient but is different to Figma where it specifies Pressing enter moves to next field when valid https://www.figma.com/design/Lw4nPYQcZOPOwTgETiiIYo/Desktop-Onboarding-Redesign?node-id=403-50297&m=dev
20 Seed phrase entry Double clicking a word so it is highlighted and pressing backspace deleted one character and opened the type-ahead suggestion menu instead of clearing the field. Fields can be cleared by selecting a word and pressing backspace or delete https://www.figma.com/design/Lw4nPYQcZOPOwTgETiiIYo/Desktop-Onboarding-Redesign?node-id=403-52841&m=dev
# Screen Actual Expected Figma Notes
21 How to get a pairing code on... (desktop tab) dialog Copy does not match Figma Copy matches Figma https://www.figma.com/design/Lw4nPYQcZOPOwTgETiiIYo/Desktop-Onboarding-Redesign?node-id=972-43934&m=dev
22 How to get a pairing code on... (mobile tab) dialog Copy does not match Figma Copy matches Figma https://www.figma.com/design/Lw4nPYQcZOPOwTgETiiIYo/Desktop-Onboarding-Redesign?node-id=972-43714&m=dev
23 Login by syncing, enter code Error text - "This does not look like a pairing code" Error text - "This is not a pairing code" https://www.figma.com/design/Lw4nPYQcZOPOwTgETiiIYo/Desktop-Onboarding-Redesign?node-id=972-43252&m=dev
24 Login by syncing, enter code Expired code goes to sync failed screen. Pressing try again repeatedly eventually showed as a success but then gets stuck on preparing status for you screen Error text - "This pairing code has expired" https://www.figma.com/design/Lw4nPYQcZOPOwTgETiiIYo/Desktop-Onboarding-Redesign?node-id=972-43329&m=dev
25 Login by syncing, enter code Code used before goes to sync failed screen Error text - "This pairing code has been used before" https://www.figma.com/design/Lw4nPYQcZOPOwTgETiiIYo/Desktop-Onboarding-Redesign?node-id=972-43376&m=dev
26 Login by syncing, enable camera No instructions on how to enable the camera again after disabling it. Clicking enable button in app again displays a blocked view
27 Profile synced, success Screen has a back button No back button https://www.figma.com/design/Lw4nPYQcZOPOwTgETiiIYo/Desktop-Onboarding-Redesign?node-id=224-20891&m=dev
28 Profile syncing failed Extra button - Log in anyway (log in without syncing?) Only 2 buttons - try to sync again; log in via recovery phrase https://www.figma.com/design/Lw4nPYQcZOPOwTgETiiIYo/Desktop-Onboarding-Redesign?node-id=221-23788&m=dev
29 Log in with recovery phrase Screen titled Create profile... Log in...

@jrainville
Copy link
Member Author

jrainville commented Jan 16, 2025

@glitchminer Thanks for the tests.

I'll only reply to the functional ones since it's the ones I worked on

  1. Touch ID prompt did not appear - biometrics were not enabled.

I do not have a Mac computer so I couldn't test this. I did put the isMac condition, but there might be something else I'm missing.

I'll create a new issue for someone like Igor who has a Mac to check it out.

edit: issue created here: #17085

  1. 3 word display name is set, this is invalid in profile settings and must be changed to proceed.

This is still the default behaviour for the app when a display name doesn't exist or isn't found (like people in a community we don,t know). We can easily change it to be a shortened pubkey, but I didn't know if we have the "go" to finally make the transition. If we go this path, 3 word names will be gone from the app.

I don't see in the new design if that's the wanted change. Let's ask @benjthayer

  1. If metrics were not shared at "help us improve status" then the user is prompted again

That sounds like a bug. I'll address it right now.

@jrainville
Copy link
Member Author

jrainville commented Jan 16, 2025

@glitchminer I tried reproducing the problem 17 about metrics, but I can't. Is it in a particular flow? I tried the basic Create profile with password one.

Also tried mnemonic

@jrainville jrainville force-pushed the feat/new-onbaording-integration branch from bb284bd to 5b2d30f Compare January 16, 2025 16:29
@jrainville jrainville force-pushed the feat/new-onbaording-integration branch from c13a96b to 8537b0a Compare January 21, 2025 19:41
@jrainville jrainville merged commit 07675f3 into master Jan 21, 2025
9 checks passed
@jrainville jrainville deleted the feat/new-onbaording-integration branch January 21, 2025 20:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Onboarding] Integrate Nim and QML
4 participants