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

feat(Onboarding) Implement new Login screen #17057

Merged
merged 3 commits into from
Jan 23, 2025

Conversation

caybro
Copy link
Member

@caybro caybro commented Jan 10, 2025

What does the PR do

  • implement the new UI and frontend logic of the Login screen
  • integrate it (as a separate page) into the OnboardingLayout
  • add SB pages
  • add an integration QML test
  • add some TODOs and FIXMEs for the existing and new external flows, which will be covered separately in followup PRs
  • separate 2 commits to fix small bg color issues in the Onboarding

TODO for followup PRs:

Fixes #17049
Fixes #17081
Fixes #17100

Affected areas

Login screen

Architecture compliance

Screenshot of functionality (including design for comparison)

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

OnboardingLayout SB page (showing the Login screen):
image

Selecting a different user/profile:
image

Password:
image

Keycard/biometrics:
image

@caybro caybro force-pushed the feat/onboarding-new-login-screen branch 2 times, most recently from 544dd34 to f6b898d Compare January 10, 2025 19:27
caybro added a commit that referenced this pull request Jan 10, 2025
@status-im-auto
Copy link
Member

status-im-auto commented Jan 10, 2025

Jenkins Builds

Click to see older builds (178)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ f6b898d #3 2025-01-10 19:35:56 ~7 min macos/aarch64 🍎dmg
✔️ f6b898d #3 2025-01-10 19:37:59 ~9 min tests/nim 📄log
✔️ f6b898d #3 2025-01-10 19:41:44 ~13 min tests/ui 📄log
✔️ f6b898d #3 2025-01-10 19:46:21 ~18 min macos/x86_64 🍎dmg
✔️ f6b898d #3 2025-01-10 19:46:56 ~18 min linux-nix/x86_64 📦tgz
✔️ f6b898d #3 2025-01-10 19:50:50 ~22 min linux/x86_64 📦tgz
✔️ f6b898d #3 2025-01-10 19:52:07 ~23 min windows/x86_64 💿exe
✔️ 7be9676 #4 2025-01-10 21:43:36 ~6 min macos/aarch64 🍎dmg
✔️ 7be9676 #4 2025-01-10 21:46:18 ~9 min tests/nim 📄log
✔️ 7be9676 #4 2025-01-10 21:49:09 ~12 min tests/ui 📄log
✔️ 7be9676 #4 2025-01-10 21:53:42 ~16 min macos/x86_64 🍎dmg
✔️ 7be9676 #4 2025-01-10 21:54:32 ~17 min linux-nix/x86_64 📦tgz
✔️ 7be9676 #4 2025-01-10 21:57:22 ~20 min windows/x86_64 💿exe
✔️ 7be9676 #4 2025-01-10 21:58:00 ~21 min linux/x86_64 📦tgz
✔️ 401e2e0 #5 2025-01-10 22:34:16 ~6 min macos/aarch64 🍎dmg
✔️ 401e2e0 #5 2025-01-10 22:38:03 ~10 min tests/nim 📄log
✔️ 401e2e0 #5 2025-01-10 22:39:45 ~11 min tests/ui 📄log
✔️ 401e2e0 #5 2025-01-10 22:43:04 ~15 min macos/x86_64 🍎dmg
✔️ 401e2e0 #5 2025-01-10 22:43:11 ~15 min linux-nix/x86_64 📦tgz
✔️ 401e2e0 #5 2025-01-10 22:46:52 ~19 min linux/x86_64 📦tgz
✔️ 401e2e0 #5 2025-01-10 22:47:37 ~19 min windows/x86_64 💿exe
✔️ b688aae #6 2025-01-11 10:13:16 ~6 min macos/aarch64 🍎dmg
✔️ b688aae #6 2025-01-11 10:16:31 ~9 min tests/nim 📄log
✔️ b688aae #6 2025-01-11 10:20:14 ~13 min tests/ui 📄log
✔️ b688aae #6 2025-01-11 10:21:49 ~14 min macos/x86_64 🍎dmg
✔️ b688aae #6 2025-01-11 10:24:42 ~17 min linux-nix/x86_64 📦tgz
✔️ b688aae #6 2025-01-11 10:27:01 ~20 min windows/x86_64 💿exe
✔️ b688aae #6 2025-01-11 10:27:51 ~21 min linux/x86_64 📦tgz
✔️ c263dfc #7 2025-01-12 12:39:51 ~6 min macos/aarch64 🍎dmg
✔️ c263dfc #7 2025-01-12 12:43:45 ~10 min tests/nim 📄log
✔️ c263dfc #7 2025-01-12 12:46:56 ~13 min tests/ui 📄log
✔️ c263dfc #7 2025-01-12 12:48:37 ~15 min macos/x86_64 🍎dmg
✔️ c263dfc #7 2025-01-12 12:50:20 ~17 min linux-nix/x86_64 📦tgz
✔️ c263dfc #7 2025-01-12 12:54:19 ~20 min windows/x86_64 💿exe
✔️ c263dfc #7 2025-01-12 12:58:34 ~25 min linux/x86_64 📦tgz
✔️ 73ddd3b #8 2025-01-13 15:17:59 ~7 min macos/aarch64 🍎dmg
✔️ 73ddd3b #8 2025-01-13 15:19:14 ~8 min tests/nim 📄log
✔️ 73ddd3b #8 2025-01-13 15:23:41 ~13 min tests/ui 📄log
✔️ 73ddd3b #8 2025-01-13 15:25:50 ~15 min linux-nix/x86_64 📦tgz
✔️ 73ddd3b #8 2025-01-13 15:31:03 ~20 min macos/x86_64 🍎dmg
✔️ 73ddd3b #8 2025-01-13 15:31:39 ~20 min windows/x86_64 💿exe
✔️ 73ddd3b #8 2025-01-13 15:35:32 ~24 min linux/x86_64 📦tgz
✔️ 0557b49 #9 2025-01-13 21:01:11 ~7 min macos/aarch64 🍎dmg
✔️ 0557b49 #9 2025-01-13 21:03:05 ~9 min tests/nim 📄log
✔️ 0557b49 #9 2025-01-13 21:06:12 ~12 min tests/ui 📄log
✔️ 0557b49 #9 2025-01-13 21:06:41 ~12 min macos/x86_64 🍎dmg
✔️ a9fecc4 #10 2025-01-13 21:16:07 ~4 min macos/aarch64 🍎dmg
✔️ a9fecc4 #10 2025-01-13 21:20:08 ~8 min tests/nim 📄log
✔️ a9fecc4 #10 2025-01-13 21:22:42 ~11 min macos/x86_64 🍎dmg
✔️ a9fecc4 #10 2025-01-13 21:24:32 ~12 min tests/ui 📄log
✔️ a9fecc4 #10 2025-01-13 21:32:07 ~20 min linux-nix/x86_64 📦tgz
✔️ a9fecc4 #10 2025-01-13 21:35:23 ~23 min windows/x86_64 💿exe
✔️ a9fecc4 #10 2025-01-13 21:35:23 ~23 min linux/x86_64 📦tgz
✔️ 5e00603 #12 2025-01-14 10:01:15 ~7 min macos/aarch64 🍎dmg
✔️ 5e00603 #12 2025-01-14 10:02:28 ~8 min tests/nim 📄log
✔️ 5e00603 #12 2025-01-14 10:07:01 ~13 min tests/ui 📄log
✔️ 5e00603 #12 2025-01-14 10:11:35 ~17 min macos/x86_64 🍎dmg
✔️ 5e00603 #12 2025-01-14 10:11:56 ~18 min linux-nix/x86_64 📦tgz
✔️ 5e00603 #12 2025-01-14 10:14:37 ~20 min linux/x86_64 📦tgz
✔️ 5e00603 #12 2025-01-14 10:20:10 ~26 min windows/x86_64 💿exe
✔️ 589e17c #13 2025-01-14 18:32:14 ~5 min macos/aarch64 🍎dmg
✔️ 589e17c #13 2025-01-14 18:35:24 ~8 min tests/nim 📄log
589e17c #13 2025-01-14 18:38:58 ~12 min tests/ui 📄log
✔️ 589e17c #13 2025-01-14 18:39:46 ~12 min macos/x86_64 🍎dmg
✔️ 0157c62 #14 2025-01-14 18:48:35 ~4 min macos/aarch64 🍎dmg
✔️ 0157c62 #14 2025-01-14 18:53:44 ~9 min tests/nim 📄log
✔️ 0157c62 #14 2025-01-14 18:55:15 ~11 min tests/ui 📄log
✔️ 0157c62 #14 2025-01-14 18:55:18 ~11 min macos/x86_64 🍎dmg
✔️ 0157c62 #14 2025-01-14 19:04:16 ~20 min linux/x86_64 📦tgz
✔️ 0157c62 #14 2025-01-14 19:06:23 ~22 min linux-nix/x86_64 📦tgz
✔️ 0157c62 #14 2025-01-14 19:06:40 ~22 min windows/x86_64 💿exe
e788759 #15 2025-01-15 20:44:42 ~4 min macos/aarch64 📄log
✔️ e788759 #15 2025-01-15 20:48:28 ~8 min tests/nim 📄log
e788759 #15 2025-01-15 20:52:04 ~12 min tests/ui 📄log
✔️ e788759 #15 2025-01-15 20:52:47 ~12 min macos/x86_64 🍎dmg
✔️ e788759 #15 2025-01-15 20:58:40 ~18 min linux-nix/x86_64 📦tgz
✔️ e788759 #15 2025-01-15 21:01:08 ~21 min windows/x86_64 💿exe
✔️ e788759 #15 2025-01-15 21:01:13 ~21 min linux/x86_64 📦tgz
✔️ e788759 #16 2025-01-15 21:07:39 ~11 min tests/ui 📄log
8f2112d #16 2025-01-16 10:36:31 ~3 min macos/aarch64 📄log
✔️ 8f2112d #16 2025-01-16 10:42:51 ~9 min tests/nim 📄log
✔️ 8f2112d #17 2025-01-16 10:44:34 ~11 min tests/ui 📄log
✔️ 8f2112d #16 2025-01-16 10:44:50 ~11 min macos/x86_64 🍎dmg
✔️ 8f2112d #16 2025-01-16 10:53:46 ~20 min linux/x86_64 📦tgz
✔️ 8f2112d #16 2025-01-16 10:54:20 ~20 min windows/x86_64 💿exe
✔️ 8f2112d #16 2025-01-16 10:54:40 ~21 min linux-nix/x86_64 📦tgz
✔️ 3d87833 #17 2025-01-16 11:15:53 ~5 min macos/aarch64 🍎dmg
✔️ 3d87833 #17 2025-01-16 11:19:07 ~8 min tests/nim 📄log
✔️ 3d87833 #17 2025-01-16 11:21:37 ~11 min macos/x86_64 🍎dmg
3d87833 #18 2025-01-16 11:23:30 ~12 min tests/ui 📄log
✔️ 3d87833 #17 2025-01-16 11:27:39 ~17 min linux-nix/x86_64 📦tgz
✔️ 3d87833 #17 2025-01-16 11:29:51 ~19 min windows/x86_64 💿exe
✔️ 3d87833 #17 2025-01-16 11:30:55 ~20 min linux/x86_64 📦tgz
✔️ bf1d7e1 #18 2025-01-16 19:00:12 ~6 min macos/aarch64 🍎dmg
✔️ bf1d7e1 #18 2025-01-16 19:02:18 ~8 min tests/nim 📄log
bf1d7e1 #19 2025-01-16 19:03:33 ~9 min tests/ui 📄log
✔️ bf1d7e1 #18 2025-01-16 19:06:43 ~12 min macos/x86_64 🍎dmg
✔️ bf1d7e1 #18 2025-01-16 19:14:20 ~20 min linux-nix/x86_64 📦tgz
✔️ bf1d7e1 #18 2025-01-16 19:14:54 ~20 min windows/x86_64 💿exe
✔️ bf1d7e1 #18 2025-01-16 19:15:40 ~21 min linux/x86_64 📦tgz
✔️ 6ae95f6 #19 2025-01-16 19:30:21 ~5 min macos/aarch64 🍎dmg
✔️ 6ae95f6 #19 2025-01-16 19:32:07 ~7 min tests/nim 📄log
✔️ 6ae95f6 #19 2025-01-16 19:35:35 ~10 min macos/x86_64 🍎dmg
✔️ 6ae95f6 #20 2025-01-16 19:36:59 ~12 min tests/ui 📄log
✔️ 6ae95f6 #19 2025-01-16 19:45:37 ~21 min linux-nix/x86_64 📦tgz
✔️ 6ae95f6 #19 2025-01-16 19:46:37 ~22 min linux/x86_64 📦tgz
✔️ 6ae95f6 #19 2025-01-16 19:47:35 ~22 min windows/x86_64 💿exe
✔️ 3e8ee44 #20 2025-01-17 16:13:34 ~5 min macos/aarch64 🍎dmg
✔️ 3e8ee44 #20 2025-01-17 16:17:21 ~9 min tests/nim 📄log
✔️ 3e8ee44 #20 2025-01-17 16:21:00 ~12 min macos/x86_64 🍎dmg
✔️ 3e8ee44 #21 2025-01-17 16:21:18 ~13 min tests/ui 📄log
✔️ 3e8ee44 #20 2025-01-17 16:26:48 ~18 min linux-nix/x86_64 📦tgz
✔️ 3e8ee44 #20 2025-01-17 16:29:15 ~21 min linux/x86_64 📦tgz
✔️ 3e8ee44 #20 2025-01-17 16:29:22 ~21 min windows/x86_64 💿exe
✔️ bb03c20 #21 2025-01-17 16:44:17 ~4 min macos/aarch64 🍎dmg
✔️ bb03c20 #21 2025-01-17 16:50:55 ~11 min macos/x86_64 🍎dmg
✔️ bb03c20 #21 2025-01-17 16:52:59 ~13 min tests/nim 📄log
bb03c20 #22 2025-01-17 16:55:16 ~15 min tests/ui 📄log
✔️ bb03c20 #21 2025-01-17 16:59:55 ~20 min linux-nix/x86_64 📦tgz
✔️ bb03c20 #21 2025-01-17 17:00:25 ~20 min windows/x86_64 💿exe
✔️ bb03c20 #21 2025-01-17 17:01:45 ~21 min linux/x86_64 📦tgz
✔️ 740cdcb #22 2025-01-17 17:15:23 ~5 min macos/aarch64 🍎dmg
✔️ 740cdcb #22 2025-01-17 17:18:46 ~8 min tests/nim 📄log
✔️ 740cdcb #22 2025-01-17 17:21:28 ~11 min macos/x86_64 🍎dmg
740cdcb #23 2025-01-17 17:22:24 ~12 min tests/ui 📄log
✔️ 740cdcb #22 2025-01-17 17:28:33 ~18 min windows/x86_64 💿exe
✔️ 740cdcb #22 2025-01-17 17:29:03 ~19 min linux-nix/x86_64 📦tgz
✔️ 740cdcb #22 2025-01-17 17:30:27 ~20 min linux/x86_64 📦tgz
✔️ f9242cd #23 2025-01-17 20:58:35 ~6 min macos/aarch64 🍎dmg
✔️ f9242cd #23 2025-01-17 21:01:22 ~9 min tests/nim 📄log
✔️ f9242cd #23 2025-01-17 21:03:09 ~11 min macos/x86_64 🍎dmg
✔️ f9242cd #24 2025-01-17 21:05:16 ~13 min tests/ui 📄log
✔️ f9242cd #23 2025-01-17 21:11:14 ~19 min windows/x86_64 💿exe
✔️ f9242cd #23 2025-01-17 21:12:00 ~20 min linux-nix/x86_64 📦tgz
✔️ f9242cd #23 2025-01-17 21:12:46 ~20 min linux/x86_64 📦tgz
✔️ 8eed24e #24 2025-01-18 17:19:11 ~5 min macos/aarch64 🍎dmg
✔️ 8eed24e #24 2025-01-18 17:22:28 ~8 min tests/nim 📄log
✔️ 8eed24e #24 2025-01-18 17:25:13 ~11 min macos/x86_64 🍎dmg
✔️ 8eed24e #25 2025-01-18 17:26:22 ~12 min tests/ui 📄log
✔️ 8eed24e #24 2025-01-18 17:31:17 ~17 min linux-nix/x86_64 📦tgz
✔️ 8eed24e #24 2025-01-18 17:33:57 ~20 min windows/x86_64 💿exe
✔️ 8eed24e #24 2025-01-18 17:34:30 ~20 min linux/x86_64 📦tgz
✔️ ed6caa5 #26 2025-01-20 11:08:52 ~7 min macos/aarch64 🍎dmg
✔️ ed6caa5 #26 2025-01-20 11:09:56 ~8 min tests/nim 📄log
✔️ ed6caa5 #27 2025-01-20 11:12:59 ~11 min tests/ui 📄log
✔️ ed6caa5 #26 2025-01-20 11:15:11 ~13 min macos/x86_64 🍎dmg
✔️ ed6caa5 #26 2025-01-20 11:18:12 ~16 min linux-nix/x86_64 📦tgz
✔️ ed6caa5 #26 2025-01-20 11:21:27 ~19 min windows/x86_64 💿exe
✔️ ed6caa5 #26 2025-01-20 11:22:22 ~20 min linux/x86_64 📦tgz
✔️ eca778b #27 2025-01-20 13:25:43 ~5 min macos/aarch64 🍎dmg
✔️ eca778b #27 2025-01-20 13:28:45 ~8 min tests/nim 📄log
✔️ eca778b #27 2025-01-20 13:33:05 ~12 min macos/x86_64 🍎dmg
✔️ eca778b #28 2025-01-20 13:33:15 ~12 min tests/ui 📄log
✔️ eca778b #27 2025-01-20 13:37:19 ~16 min linux-nix/x86_64 📦tgz
✔️ eca778b #27 2025-01-20 13:39:02 ~18 min linux/x86_64 📦tgz
✔️ eca778b #27 2025-01-20 13:39:20 ~18 min windows/x86_64 💿exe
✔️ c7d2222 #29 2025-01-20 15:24:43 ~5 min macos/aarch64 🍎dmg
✔️ c7d2222 #29 2025-01-20 15:28:05 ~8 min tests/nim 📄log
✔️ c7d2222 #30 2025-01-20 15:32:01 ~12 min tests/ui 📄log
✔️ c7d2222 #29 2025-01-20 15:33:20 ~13 min macos/x86_64 🍎dmg
✔️ c7d2222 #29 2025-01-20 15:36:24 ~17 min linux-nix/x86_64 📦tgz
✔️ c7d2222 #29 2025-01-20 15:40:46 ~21 min linux/x86_64 📦tgz
✔️ c7d2222 #29 2025-01-20 15:42:11 ~22 min windows/x86_64 💿exe
✔️ 8712ca6 #30 2025-01-21 14:01:22 ~6 min macos/aarch64 🍎dmg
✔️ 8712ca6 #30 2025-01-21 14:04:17 ~8 min tests/nim 📄log
8712ca6 #31 2025-01-21 14:07:30 ~12 min tests/ui 📄log
✔️ 8712ca6 #30 2025-01-21 14:08:33 ~13 min macos/x86_64 🍎dmg
✔️ 8712ca6 #30 2025-01-21 14:15:06 ~19 min linux-nix/x86_64 📦tgz
✔️ 8712ca6 #30 2025-01-21 14:15:55 ~20 min windows/x86_64 💿exe
✔️ 8712ca6 #30 2025-01-21 14:16:39 ~21 min linux/x86_64 📦tgz
✔️ 8712ca6 #32 2025-01-21 14:33:52 ~11 min tests/ui 📄log
✔️ 435e210 #31 2025-01-22 12:50:51 ~5 min macos/aarch64 🍎dmg
✔️ 435e210 #31 2025-01-22 12:54:19 ~9 min tests/nim 📄log
✔️ 435e210 #33 2025-01-22 12:57:33 ~12 min tests/ui 📄log
✔️ 435e210 #31 2025-01-22 12:58:22 ~13 min macos/x86_64 🍎dmg
✔️ 435e210 #31 2025-01-22 13:03:32 ~18 min linux-nix/x86_64 📦tgz
✔️ 435e210 #31 2025-01-22 13:04:14 ~19 min linux/x86_64 📦tgz
✔️ 435e210 #31 2025-01-22 13:08:35 ~23 min windows/x86_64 💿exe
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 0cdbe5b #32 2025-01-22 19:20:34 ~4 min macos/aarch64 🍎dmg
✔️ 0cdbe5b #32 2025-01-22 19:24:08 ~8 min tests/nim 📄log
✔️ 0cdbe5b #34 2025-01-22 19:26:59 ~11 min tests/ui 📄log
✔️ 0cdbe5b #32 2025-01-22 19:27:06 ~11 min macos/x86_64 🍎dmg
✔️ 0cdbe5b #32 2025-01-22 19:34:05 ~18 min linux-nix/x86_64 📦tgz
✔️ 0cdbe5b #32 2025-01-22 19:34:55 ~19 min windows/x86_64 💿exe
✔️ 0cdbe5b #32 2025-01-22 19:35:58 ~20 min linux/x86_64 📦tgz
✔️ 40e8411 #33 2025-01-23 11:15:08 ~5 min macos/aarch64 🍎dmg
✔️ 40e8411 #33 2025-01-23 11:18:52 ~9 min tests/nim 📄log
✔️ 40e8411 #33 2025-01-23 11:22:19 ~12 min macos/x86_64 🍎dmg
40e8411 #35 2025-01-23 11:22:33 ~13 min tests/ui 📄log
✔️ 40e8411 #33 2025-01-23 11:28:12 ~18 min linux-nix/x86_64 📦tgz
✔️ 40e8411 #33 2025-01-23 11:29:09 ~19 min linux/x86_64 📦tgz
✔️ 40e8411 #33 2025-01-23 11:29:34 ~20 min windows/x86_64 💿exe
✔️ 40e8411 #36 2025-01-23 11:44:03 ~13 min tests/ui 📄log

caybro added a commit that referenced this pull request Jan 10, 2025
@caybro caybro force-pushed the feat/onboarding-new-login-screen branch from f6b898d to 7be9676 Compare January 10, 2025 21:36
caybro added a commit that referenced this pull request Jan 10, 2025
@caybro caybro force-pushed the feat/onboarding-new-login-screen branch from 7be9676 to 401e2e0 Compare January 10, 2025 22:27
caybro added a commit that referenced this pull request Jan 11, 2025
@caybro caybro force-pushed the feat/onboarding-new-login-screen branch from 401e2e0 to b688aae Compare January 11, 2025 10:06
caybro added a commit that referenced this pull request Jan 12, 2025
@caybro caybro force-pushed the feat/onboarding-new-login-screen branch from b688aae to c263dfc Compare January 12, 2025 12:33
@micieslak micieslak force-pushed the feat/onboarding-rework-1 branch 2 times, most recently from d5524fd to 35b8620 Compare January 13, 2025 11:27
caybro added a commit that referenced this pull request Jan 13, 2025
@caybro caybro force-pushed the feat/onboarding-new-login-screen branch from c263dfc to 73ddd3b Compare January 13, 2025 15:10
@anastasiyaig anastasiyaig force-pushed the feat/onboarding-rework-1 branch from 29ce4b0 to 43a5b68 Compare January 13, 2025 15:24
caybro added a commit that referenced this pull request Jan 13, 2025
@caybro caybro force-pushed the feat/onboarding-new-login-screen branch from 73ddd3b to 0557b49 Compare January 13, 2025 20:53
caybro added a commit that referenced this pull request Jan 13, 2025
@caybro caybro force-pushed the feat/onboarding-new-login-screen branch from 0557b49 to a9fecc4 Compare January 13, 2025 21:11
Base automatically changed from feat/onboarding-rework-1 to master January 14, 2025 09:49
caybro added a commit that referenced this pull request Jan 14, 2025
@caybro caybro force-pushed the feat/onboarding-new-login-screen branch from a9fecc4 to 5e00603 Compare January 14, 2025 09:53
caybro added a commit that referenced this pull request Jan 14, 2025
@caybro caybro force-pushed the feat/onboarding-new-login-screen branch from 5e00603 to 589e17c Compare January 14, 2025 18:26
caybro added a commit that referenced this pull request Jan 14, 2025
@caybro caybro force-pushed the feat/onboarding-new-login-screen branch from 589e17c to 0157c62 Compare January 14, 2025 18:43
caybro added a commit that referenced this pull request Jan 15, 2025
@caybro caybro force-pushed the feat/onboarding-new-login-screen branch from 0157c62 to e788759 Compare January 15, 2025 20:39
@caybro caybro requested review from alexjba and a team as code owners January 20, 2025 15:26
@caybro caybro requested review from igor-sirotin and removed request for a team January 20, 2025 15:26
@caybro caybro changed the title WIP feat(Onboarding) Implement new Login screen feat(Onboarding) Implement new Login screen Jan 20, 2025
caybro added a commit that referenced this pull request Jan 21, 2025
- implement the new UI and frontend logic of the Login screen
- integrate it (as a separate page) into the OnboardingLayout
- add SB pages
- add an integration QML test
- add some TODOs and FIXMEs for the existing and new external flows,
which will be covered separately in followup PRs

Fixes #17057
@caybro caybro force-pushed the feat/onboarding-new-login-screen branch from c7d2222 to 8712ca6 Compare January 21, 2025 13:55
Copy link
Member

@micieslak micieslak left a comment

Choose a reason for hiding this comment

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

Cool! Looks good in general as it's nicely extending what we had and therefore easy to understand code.

I left propositions of several smaller or bigger improvements and structural alignments.

storybook/pages/LoginScreenPage.qml Outdated Show resolved Hide resolved
Copy link
Member

Choose a reason for hiding this comment

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

As the LoginPage name is already free, can we rename this one to LoginPage?

Copy link
Member Author

Choose a reason for hiding this comment

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

🤷 dunno, I liked the LoginScreen better but yeah, I can rename it

Copy link
Member Author

@caybro caybro Jan 22, 2025

Choose a reason for hiding this comment

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

Two more reasons, I never liked the LoginPagePage pattern for storybook, and also this is not really a "page" in the sense of the onboarding; rather a separate thing

Copy link
Member

Choose a reason for hiding this comment

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

now we have flows, pages and layout, combining all the things together. Screen just doesn't fit to that convention for me, structurally it's like other "pages" we have. "PagePage" is Storybook's problem and shouldn't affect naming patterns in the app.

ui/app/AppLayouts/Onboarding2/OnboardingLayout.qml Outdated Show resolved Hide resolved
Comment on lines 49 to +59
function init() {
root.stackView.push(welcomePage)
}

function startCreateProfileFlow() {
root.stackView.push(createProfilePage)
}

function startLoginFlow() {
root.stackView.push(loginPage)
}
Copy link
Member

Choose a reason for hiding this comment

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

Actually all three method do initialization of the flow, the difference is starting page. So it would be nice to align naming somehow.

What about changing init into startWelcomeFlow or startWelcomePage?

Otherwise it's easy to think that it's necessary to call init first, even before calling e.g. startCreateProfileFlow.

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'll think about something, as I'm adding more things in the followup PR

onSelectedProfileKeyIdChanged: biometricsPopup.visible = Qt.binding(() => ctrlBiometrics.checked && ctrlTouchIdUser.checked && store.keycardState === Onboarding.KeycardState.NotEmpty)
}

Dialog {
Copy link
Member

Choose a reason for hiding this comment

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

It could be excluded to a separate file, could be stored in pages dir as some other utilities that are intended to be used only from pages and are not general purpose storybook utils.

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 good idea; I was thinking about the same for the "keycard state" buttons/combobox, it's just duplicated all over the place

Copy link
Member Author

Choose a reason for hiding this comment

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

Yup, extracted to a separate component

Copy link
Member

Choose a reason for hiding this comment

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

putting it into status-desktop/storybook/src/Storybook/BiometricsPopup.qml

breaks the convention. storybook/src/Storybook/ is location of generic storybook components that could be used in any project. App-specific helpers should go directly to pages dir.

caybro added a commit that referenced this pull request Jan 22, 2025
- implement the new UI and frontend logic of the Login screen
- integrate it (as a separate page) into the OnboardingLayout
- add SB pages
- add an integration QML test
- add some TODOs and FIXMEs for the existing and new external flows,
which will be covered separately in followup PRs

Fixes #17057
@caybro caybro force-pushed the feat/onboarding-new-login-screen branch from 8712ca6 to 435e210 Compare January 22, 2025 12:44
caybro added a commit that referenced this pull request Jan 22, 2025
- implement the new UI and frontend logic of the Login screen
- integrate it (as a separate page) into the OnboardingLayout
- add SB pages
- add an integration QML test
- add some TODOs and FIXMEs for the existing and new external flows,
which will be covered separately in followup PRs

Fixes #17057
@caybro caybro force-pushed the feat/onboarding-new-login-screen branch from 435e210 to 0cdbe5b Compare January 22, 2025 19:15
@caybro
Copy link
Member Author

caybro commented Jan 22, 2025

@micieslak I think I handled and fixed all the comments, pls have a second look; same for @jrainville. Would be nice to be able to merge this so that we have at least some integration to work with

caybro added a commit that referenced this pull request Jan 22, 2025
- implement the new UI and frontend logic of the Login screen
- integrate it (as a separate page) into the OnboardingLayout
- add SB pages
- add an integration QML test
- add some TODOs and FIXMEs for the existing and new external flows,
which will be covered separately in followup PRs

Fixes #17057
Comment on lines 27 to 30
let uid = keyUid
if (uid === "")
uid = proxyModel.get(0, "keyUid") // select the first entry from the model
currentEntry.value = uid
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
let uid = keyUid
if (uid === "")
uid = proxyModel.get(0, "keyUid") // select the first entry from the model
currentEntry.value = uid
currentEntry.value = keyUid === "" ? (proxyModel.get(0, "keyUid") ?? "") : keyUid

There are several potential problems in the imperative code fetching the first entry key:

  1. Model may be empty and the fetched value is undefied (fixed by the proposed code)
  2. If model is empty when setSelection is called and populated later, first entry won't be fetched
  3. If the provided keyUid is not in the model, fallback to the first entry won't work

That situation shows limitations of ModelEntry which is limited it terms of how the entry is pointed. The solution could be generalizing the ModelEntry to support more generic search criteria.

I created ticket proposing changes to ModelEntry which could allow handling cases like that in simple, declarative way: #17117

- explicitely provide a bg color
- also fix the mouse cursor shape
- implement the new UI and frontend logic of the Login screen
- integrate it (as a separate page) into the OnboardingLayout
- add SB pages
- add an integration QML test
- add some TODOs and FIXMEs for the existing and new external flows,
which will be covered separately in followup PRs

Fixes #17057
@caybro caybro force-pushed the feat/onboarding-new-login-screen branch from 0cdbe5b to 40e8411 Compare January 23, 2025 11:09
caybro added a commit that referenced this pull request Jan 23, 2025
- implement the new UI and frontend logic of the Login screen
- integrate it (as a separate page) into the OnboardingLayout
- add SB pages
- add an integration QML test
- add some TODOs and FIXMEs for the existing and new external flows,
which will be covered separately in followup PRs

Fixes #17057
caybro added a commit that referenced this pull request Jan 23, 2025
- implement the new UI and frontend logic of the Login screen
- integrate it (as a separate page) into the OnboardingLayout
- add SB pages
- add an integration QML test
- add some TODOs and FIXMEs for the existing and new external flows,
which will be covered separately in followup PRs

Fixes #17057
Copy link
Member

@micieslak micieslak left a comment

Choose a reason for hiding this comment

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

Nice!

There is one comment not addressed regarding moving BiometricsPopup.qml. Would be nice to do for preserving the current order.

@caybro
Copy link
Member Author

caybro commented Jan 23, 2025

Nice!

There is one comment not addressed regarding moving BiometricsPopup.qml. Would be nice to do for preserving the current order.

I did move it to a shared location:
https://github.com/status-im/status-desktop/pull/17057/files#diff-edd4c3c20a673864eb5cc5ea8504878f7b2eb470fe5dab080968b4982ff14291R1

Or did you mean something else?

Copy link
Member

@jrainville jrainville left a comment

Choose a reason for hiding this comment

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

LGTM

@caybro caybro merged commit 638676e into master Jan 23, 2025
9 checks passed
@caybro caybro deleted the feat/onboarding-new-login-screen branch January 23, 2025 16:41
caybro added a commit that referenced this pull request Jan 23, 2025
- implement the new UI and frontend logic of the Login screen
- integrate it (as a separate page) into the OnboardingLayout
- add SB pages
- add an integration QML test
- add some TODOs and FIXMEs for the existing and new external flows,
which will be covered separately in followup PRs

Fixes #17057
caybro added a commit that referenced this pull request Jan 23, 2025
- implement the new UI and frontend logic of the Login screen
- integrate it (as a separate page) into the OnboardingLayout
- add SB pages
- add an integration QML test
- add some TODOs and FIXMEs for the existing and new external flows,
which will be covered separately in followup PRs

Fixes #17057
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants