Skip to content

Conversation

caybro
Copy link
Member

@caybro caybro commented Oct 1, 2025

What does the PR do

  • based on the respective feature flag
  • hide the controls instead of visually disabling them
  • adjust the tests and SB pages
  • fix the "paste" helpers in the Onboarding SB page

(plus some minor fixes in separate commits)

Fixes #18920

Affected areas

Onboarding,Homepage

Architecture compliance

Screencapture of the functionality

Keycard enabled on Login:
image

Keycard disabled on Login:
image

Keycard enabled in Onboarding:
image

Keycard disabled in Onboarding:
image

Homepage:
image

Homepage disabled:
image

Impact on end user

The keycard related stuff is hidden from the onboarding/login/homepage views

@caybro caybro requested review from a team, alexjba, micieslak and noeliaSD as code owners October 1, 2025 09:39
@caybro caybro requested review from jrainville and removed request for a team October 1, 2025 09:40
@status-im-auto
Copy link
Member

status-im-auto commented Oct 1, 2025

Jenkins Builds

Click to see older builds (59)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ a6ebc50 #1 2025-10-01 09:47:45 ~7 min tests/nim 📄log
✔️ a6ebc50 #1 2025-10-01 09:50:18 ~10 min android/arm64 🤖apk 📲
✔️ a6ebc50 #1 2025-10-01 09:53:16 ~13 min ios/aarch64 📦pkg
✔️ a6ebc50 #1 2025-10-01 09:53:25 ~13 min macos/aarch64 🍎dmg
✔️ a6ebc50 #1 2025-10-01 09:54:03 ~13 min tests/ui 📄log
✔️ a6ebc50 #1 2025-10-01 09:56:44 ~16 min linux/x86_64 📦tgz
✔️ a6ebc50 #1 2025-10-01 10:02:37 ~22 min linux/x86_64-nwaku 📦tgz
✔️ a6ebc50 #1 2025-10-01 10:03:33 ~23 min windows/x86_64 💿exe
✔️ a6ebc50 #1 2025-10-01 10:04:02 ~23 min macos/aarch64-nwaku 🍎dmg
✔️ a6ebc50 pr18933 2025-10-01 10:10:44 ~13 min tests/e2e 📊rpt
✖️ cf7ca85 #2 2025-10-01 17:05:21 ~6 min tests/nim 📄log
✔️ cf7ca85 #2 2025-10-01 17:06:14 ~6 min ios/aarch64 📦pkg
✔️ cf7ca85 #2 2025-10-01 17:11:35 ~12 min linux/x86_64 📦tgz
✔️ cf7ca85 #2 2025-10-01 17:15:17 ~15 min macos/aarch64 🍎dmg
✔️ cf7ca85 #2 2025-10-01 17:17:04 ~17 min macos/aarch64-nwaku 🍎dmg
✔️ cf7ca85 #2 2025-10-01 17:18:22 ~19 min linux/x86_64-nwaku 📦tgz
✔️ cf7ca85 #2 2025-10-01 17:18:29 ~19 min tests/ui 📄log
✔️ cf7ca85 #2 2025-10-01 17:21:02 ~21 min windows/x86_64 💿exe
✔️ cf7ca85 pr18933 2025-10-01 17:37:31 ~25 min tests/e2e 📊rpt
✔️ 1afc281e #2 2025-10-01 17:07:52 ~8 min android/arm64 🤖apk 📲
✔️ be47a8d #3 2025-10-01 17:31:31 ~7 min ios/aarch64 📦pkg
✔️ be47a8d #3 2025-10-01 17:36:50 ~12 min macos/aarch64 🍎dmg
✔️ be47a8d #3 2025-10-01 17:41:49 ~17 min macos/aarch64-nwaku 🍎dmg
✔️ be47a8d #3 2025-10-01 17:43:37 ~19 min windows/x86_64 💿exe
✔️ be47a8d #3 2025-10-01 17:47:07 ~22 min tests/nim 📄log
✔️ be47a8d #3 2025-10-01 17:50:55 ~26 min android/arm64 🤖apk 📲
✔️ be47a8d #3 2025-10-01 17:53:33 ~29 min tests/ui 📄log
✔️ be47a8d #3 2025-10-01 17:53:44 ~29 min linux/x86_64 📦tgz
✔️ be47a8d #3 2025-10-01 17:57:13 ~32 min linux/x86_64-nwaku 📦tgz
✔️ be47a8d pr18933 2025-10-01 18:08:47 ~14 min tests/e2e 📊rpt
✔️ d4e6599 #4 2025-10-02 11:00:43 ~6 min tests/nim 📄log
✔️ d4e6599 #4 2025-10-02 11:00:44 ~6 min android/arm64 🤖apk 📲
✔️ d4e6599 #4 2025-10-02 11:01:16 ~7 min ios/aarch64 📦pkg
✔️ d4e6599 #4 2025-10-02 11:07:37 ~13 min tests/ui 📄log
✔️ d4e6599 #4 2025-10-02 11:07:52 ~13 min macos/aarch64 🍎dmg
✔️ d4e6599 #4 2025-10-02 11:11:33 ~17 min linux/x86_64 📦tgz
✔️ d4e6599 #4 2025-10-02 11:12:35 ~18 min macos/aarch64-nwaku 🍎dmg
✔️ d4e6599 #4 2025-10-02 11:14:29 ~20 min windows/x86_64 💿exe
✔️ d4e6599 #4 2025-10-02 11:16:46 ~22 min linux/x86_64-nwaku 📦tgz
✔️ d4e6599 pr18933 2025-10-02 11:26:37 ~14 min tests/e2e 📊rpt
✔️ b572d9e #5 2025-10-03 08:47:58 ~8 min tests/nim 📄log
b572d9e #5 2025-10-03 08:48:19 ~8 min android/arm64 📄log
✔️ b572d9e #5 2025-10-03 08:50:41 ~11 min ios/aarch64 📦pkg
✔️ b572d9e #5 2025-10-03 08:52:18 ~12 min macos/aarch64 🍎dmg
✔️ b572d9e #5 2025-10-03 08:54:51 ~15 min tests/ui 📄log
✔️ b572d9e #5 2025-10-03 09:00:20 ~20 min macos/aarch64-nwaku 🍎dmg
✔️ b572d9e #5 2025-10-03 09:02:19 ~22 min windows/x86_64 💿exe
1665659 #6 2025-10-03 09:08:48 ~4 min android/arm64 📄log
✔️ 1665659 #6 2025-10-03 09:11:06 ~6 min tests/nim 📄log
✔️ 1665659 #6 2025-10-03 09:11:40 ~7 min ios/aarch64 📦pkg
1665659 #6 2025-10-03 09:13:24 ~8 min linux/x86_64-nwaku 📄log
✔️ 1665659 #6 2025-10-03 09:17:32 ~12 min tests/ui 📄log
1665659 #6 2025-10-03 09:18:27 ~13 min linux/x86_64 📄log
✔️ 1665659 #7 2025-10-03 09:18:46 ~12 min macos/aarch64 🍎dmg
✔️ 1665659 #7 2025-10-03 09:23:38 ~17 min macos/aarch64-nwaku 🍎dmg
✔️ 1665659 #6 2025-10-03 09:24:11 ~19 min windows/x86_64 💿exe
1665659 #7 2025-10-03 12:04:43 ~7 min android/arm64 📄log
1665659 #7 2025-10-03 12:07:47 ~10 min linux/x86_64-nwaku 📄log
1665659 #7 2025-10-03 12:09:42 ~12 min linux/x86_64 📄log
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ fa39c71 #7 2025-10-03 14:35:13 ~7 min ios/aarch64 📦pkg
✔️ fa39c71 #8 2025-10-03 14:40:46 ~12 min macos/aarch64 🍎dmg
fa39c71 #8 2025-10-03 14:42:26 ~14 min android/arm64 📄log
✔️ fa39c71 #8 2025-10-03 14:45:35 ~17 min macos/aarch64-nwaku 🍎dmg
✔️ fa39c71 #7 2025-10-03 14:46:16 ~18 min tests/nim 📄log
fa39c71 #8 2025-10-03 14:47:02 ~18 min linux/x86_64-nwaku 📄log
✔️ fa39c71 #7 2025-10-03 14:48:05 ~19 min windows/x86_64 💿exe
fa39c71 #8 2025-10-03 14:52:08 ~24 min linux/x86_64 📄log
✔️ fa39c71 #7 2025-10-03 14:55:34 ~27 min tests/ui 📄log
fa39c71 #9 2025-10-03 15:06:42 ~14 min android/arm64 📄log
fa39c71 #9 2025-10-03 15:10:22 ~18 min linux/x86_64-nwaku 📄log
fa39c71 #9 2025-10-03 15:18:35 ~25 min linux/x86_64 📄log
✔️ d2be288 #8 2025-10-03 23:23:43 ~6 min tests/nim 📄log
✔️ d2be288 #8 2025-10-03 23:24:26 ~6 min ios/aarch64 📦pkg
✔️ d2be288 #12 2025-10-03 23:26:28 ~6 min android/arm64 🤖apk 📲
✔️ d2be288 #8 2025-10-03 23:31:33 ~13 min tests/ui 📄log
✔️ d2be288 #10 2025-10-03 23:32:37 ~13 min macos/aarch64 🍎dmg
✔️ d2be288 #11 2025-10-03 23:32:37 ~12 min linux/x86_64 📦tgz
✔️ d2be288 #10 2025-10-03 23:36:43 ~16 min macos/aarch64-nwaku 🍎dmg
✔️ d2be288 #8 2025-10-03 23:39:12 ~21 min windows/x86_64 💿exe
✔️ d2be288 #11 2025-10-03 23:44:10 ~24 min linux/x86_64-nwaku 📦tgz
✔️ d2be288 pr18933 2025-10-03 23:47:48 ~15 min tests/e2e 📊rpt

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.

See comment about existing Keycard accounts

image: currentEntry.item.thumbnailImage
colorId: currentEntry.item.colorId
keycardCreatedAccount: currentEntry.item.keycardCreatedAccount
keycardCreatedAccount: currentEntry.item.keycardCreatedAccount && root.isKeycardEnabled
Copy link
Member

Choose a reason for hiding this comment

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

I don't think this is correct. If an account was created using Keycard and Keycard is not enabled, we actually need to show a warning or something.

Basically, the account will not be usable, because the keys are inside the Keycard.

So maybe instead we should disable the entry and add a tooltip (that shows on click because of mobile)

Copy link
Member Author

Choose a reason for hiding this comment

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

Alright, I see, so it needs to be filtered out; will fix

Copy link
Member Author

Choose a reason for hiding this comment

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

But on a second thought, how could this happen? We never supported creating Keycard accounts on mobile before, so this is not a problem at all? Such a keycard entry would never appear then in the profile selector

Copy link
Member

Choose a reason for hiding this comment

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

But on a second thought, how could this happen? We never supported creating Keycard accounts on mobile before, so this is not a problem at all? Such a keycard entry would never appear then in the profile selector

There is one way it can happen and it's if someone pairs a keycard account from Desktop to Mobile. Then that account is gonna be unusable until we implement keycard support.

We'll add warnings on the syncing page to warn against doing it, but I don't think there is another easy way to stop it from happening

Copy link
Member Author

Choose a reason for hiding this comment

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

I see... so either filtering such accounts off (removing them from the selector, which I just did locally), or just making it disabled (but the LoginSelector was never designed or developed with the possibility of having some disabled items in it...)

Copy link
Member Author

Choose a reason for hiding this comment

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

Or something like this:

Zaznam.obrazovky.z.2025-10-01.16-49-51.mp4

Copy link
Member Author

Choose a reason for hiding this comment

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

Fixed by filtering out the Keycard profiles if we have any and displaying this little warning icon with a tooltip:

image

Copy link
Contributor

@noeliaSD noeliaSD left a comment

Choose a reason for hiding this comment

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

Tested and LGTM apart from Jo's comment!

@caybro caybro requested a review from igor-sirotin October 1, 2025 14:51
@caybro caybro force-pushed the 18920-mobile-hide-keycard-user-flows branch 2 times, most recently from cf7ca85 to be47a8d Compare October 1, 2025 17:24
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.

Looks better. I think maybe still showing the entry as disabled would be a little better though

Copy link
Contributor

@igor-sirotin igor-sirotin left a comment

Choose a reason for hiding this comment

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

I agree with @jrainville that it's wrong to hide the accounts completely.

It would look for the user like an account has disappeared. It would be more friendly to make them disabled, or indeed show some text next to it. Perhaps similar what you did with a red keycard icon, but I'd do it more explicit, like a red label instead of the password input, and the log in button disabled.

Though... I'm not sure how would a user even get to such case 🤔 If the keycard is not supported, how can the user get a keycard account installed?


I'm approving the PR anyway, as I'm not a stake holder here and there's Jo request changes already.

model: root.loginAccountsModel
currentKeycardLocked: root.keycardState === Onboarding.KeycardState.BlockedPIN ||
root.keycardState === Onboarding.KeycardState.BlockedPUK
isKeycardEnabled: root.isKeycardEnabled
Copy link
Contributor

Choose a reason for hiding this comment

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

I'd rather call it keycardSupported 🤔

Copy link
Member Author

Choose a reason for hiding this comment

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

Well, it matches the FeatureFlagsStore.keycardEnabled; it's not really a question whether it's supported, but rather if enabled (by the respective feature flag)

@caybro caybro force-pushed the 18920-mobile-hide-keycard-user-flows branch from be47a8d to d4e6599 Compare October 2, 2025 10:53
@jrainville
Copy link
Member

Though... I'm not sure how would a user even get to such case 🤔 If the keycard is not supported, how can the user get a keycard account installed?.

@igor-sirotin I explained how it can happen here: #18933 (comment)

@caybro caybro force-pushed the 18920-mobile-hide-keycard-user-flows branch 2 times, most recently from b572d9e to 1665659 Compare October 3, 2025 09:04
@caybro
Copy link
Member Author

caybro commented Oct 3, 2025

Looks better. I think maybe still showing the entry as disabled would be a little better though

Done @jrainville & @igor-sirotin, we show them disabled with a red keycard icon + tooltip:

image

Such items cannot be selected

@micieslak
Copy link
Member

Looks better. I think maybe still showing the entry as disabled would be a little better though

Done @jrainville & @igor-sirotin, we show them disabled with a red keycard icon + tooltip:

Those entries will be disabled (mostly) on platforms with no mouse pointer. So the info is inaccessible. What about putting that directly into the delegate (with some design team help probably)?

@caybro caybro force-pushed the 18920-mobile-hide-keycard-user-flows branch from 1665659 to fa39c71 Compare October 3, 2025 14:27
@caybro
Copy link
Member Author

caybro commented Oct 3, 2025

Looks better. I think maybe still showing the entry as disabled would be a little better though

Done @jrainville & @igor-sirotin, we show them disabled with a red keycard icon + tooltip:

Those entries will be disabled (mostly) on platforms with no mouse pointer. So the info is inaccessible. What about putting that directly into the delegate (with some design team help probably)?

OK going for a second line of (smaller) text:
image

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.

Looks like a decent solution 👍

caybro added 4 commits October 4, 2025 01:16
- drop reference to macOS/Intel -> no longer supported
- based on the respective feature flag
- hide the controls instead of visually disabling them
- based on the respective feature flag
- hide the controls instead of visually disabling them, except for the
login profile selector
- adjust the tests and SB pages
- fix the "paste" helpers in the Onboarding SB page

Fixes #18920
@caybro caybro force-pushed the 18920-mobile-hide-keycard-user-flows branch from fa39c71 to d2be288 Compare October 3, 2025 23:17
@caybro caybro merged commit 63dacb4 into master Oct 5, 2025
12 checks passed
@caybro caybro deleted the 18920-mobile-hide-keycard-user-flows branch October 5, 2025 20:25
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.

[Mobile] hide all entry points to Keycard user flows in Onboarding and Settings

6 participants