Skip to content

Conversation

micieslak
Copy link
Member

@micieslak micieslak commented Oct 14, 2025

What does the PR do

  • reimplements enter seed phrase component
  • various warnings fixed
  • BIP39_en dictionary component removed from store
  • replace all usages of EnterSeedPhrase component with a new version
  • unit tests adapted
  • old component removed

Figma: https://www.figma.com/design/SGyfSjxs5EbzimHDXTlj8B/Qt-Responsive---v?node-id=2423-40310&t=mAqENLAZjVmyQM

Closes: #18834

Affected areas

Onboarding

Architecture compliance

Screencapture of the functionality

Screencast.from.15.10.2025.00.52.30.webm
Record_2025-10-15-10-37-23.mp4

Impact on end user

High

How to test

Run onboarding flows involving seed phrase

Risk

@micieslak micieslak requested review from a team, alexjba, caybro and noeliaSD as code owners October 14, 2025 22:54
@status-im-auto
Copy link
Member

status-im-auto commented Oct 14, 2025

Jenkins Builds

Click to see older builds (139)
Commit #️⃣ Finished (UTC) Duration Platform Result
d1cf0be #1 2025-10-14 23:02:13 ~7 min macos/aarch64 📄log
d1cf0be #1 2025-10-14 23:02:13 ~7 min macos/aarch64-nwaku 📄log
✔️ d1cf0be #1 2025-10-14 23:03:21 ~8 min tests/nim 📄log
✔️ d1cf0be #1 2025-10-14 23:05:26 ~10 min android/arm64 🤖apk 📲
✔️ d1cf0be #1 2025-10-14 23:06:08 ~11 min ios/aarch64 📦pkg
d1cf0be #1 2025-10-14 23:06:45 ~11 min tests/ui 📄log
✔️ d1cf0be #1 2025-10-14 23:11:19 ~16 min linux/x86_64 📦tgz
✔️ d1cf0be #1 2025-10-14 23:18:50 ~24 min linux/x86_64-nwaku 📦tgz
✔️ d1cf0be #1 2025-10-14 23:22:18 ~27 min windows/x86_64 💿exe
✖️ d1cf0be pr19004 2025-10-14 23:28:01 ~16 min tests/e2e 📊rpt
✔️ fed3537 #2 2025-10-15 07:46:12 ~6 min tests/nim 📄log
✔️ fed3537 #2 2025-10-15 07:49:24 ~9 min android/arm64 🤖apk 📲
✔️ fed3537 #2 2025-10-15 07:50:07 ~10 min ios/aarch64 📦pkg
✔️ fed3537 #2 2025-10-15 07:52:52 ~12 min linux/x86_64 📦tgz
✔️ fed3537 #2 2025-10-15 07:52:58 ~12 min macos/aarch64 🍎dmg
✔️ fed3537 #2 2025-10-15 07:53:29 ~13 min tests/ui 📄log
✔️ fed3537 #2 2025-10-15 07:57:05 ~17 min macos/aarch64-nwaku 🍎dmg
✔️ fed3537 #2 2025-10-15 08:02:28 ~22 min linux/x86_64-nwaku 📦tgz
✔️ fed3537 #2 2025-10-15 08:06:02 ~26 min windows/x86_64 💿exe
✖️ fed3537 pr19004 2025-10-15 08:10:40 ~17 min tests/e2e 📊rpt
✔️ 5e95d3e #3 2025-10-15 08:23:47 ~6 min ios/aarch64 📦pkg
✔️ 5e95d3e #3 2025-10-15 08:23:59 ~6 min tests/nim 📄log
✔️ 5e95d3e #3 2025-10-15 08:24:15 ~6 min android/arm64 🤖apk 📲
✔️ 5e95d3e #3 2025-10-15 08:30:32 ~12 min linux/x86_64 📦tgz
✔️ 5e95d3e #3 2025-10-15 08:30:50 ~13 min macos/aarch64 🍎dmg
✔️ 5e95d3e #3 2025-10-15 08:31:25 ~13 min tests/ui 📄log
✔️ 5e95d3e #3 2025-10-15 08:37:15 ~19 min linux/x86_64-nwaku 📦tgz
✔️ 5e95d3e #3 2025-10-15 08:38:21 ~20 min macos/aarch64-nwaku 🍎dmg
✔️ 5e95d3e #3 2025-10-15 08:41:48 ~24 min windows/x86_64 💿exe
✖️ 5e95d3e pr19004 2025-10-15 08:56:17 ~25 min tests/e2e 📊rpt
✔️ 8aec6707 #4 2025-10-15 09:51:42 ~12 min android/arm64 🤖apk 📲
✔️ 168dfa21 #5 2025-10-15 11:23:01 ~12 min android/arm64 🤖apk 📲
✔️ 2b2263e #4 2025-10-15 11:26:35 ~15 min tests/nim 📄log
✔️ 2b2263e #4 2025-10-15 11:35:21 ~24 min windows/x86_64 💿exe
✔️ 2b2263e #4 2025-10-15 11:36:31 ~25 min linux/x86_64 📦tgz
✔️ 2b2263e #4 2025-10-15 11:37:23 ~26 min tests/ui 📄log
✔️ 2b2263e #4 2025-10-15 11:38:48 ~27 min linux/x86_64-nwaku 📦tgz
✔️ 2b2263e #4 2025-10-15 11:43:33 ~32 min ios/aarch64 📦pkg
✔️ 2b2263e #4 2025-10-15 11:49:58 ~38 min macos/aarch64 🍎dmg
✖️ 2b2263e pr19004 2025-10-15 11:53:28 ~16 min tests/e2e 📊rpt
✔️ 250b4af8 #6 2025-10-15 17:23:00 ~7 min android/arm64 🤖apk 📲
✔️ 75dfadb9 #7 2025-10-16 08:48:13 ~14 min android/arm64 🤖apk 📲
✔️ 481e491 #5 2025-10-16 08:52:58 ~19 min tests/nim 📄log
✔️ 481e491 #5 2025-10-16 08:57:33 ~24 min linux/x86_64 📦tgz
✔️ 481e491 #5 2025-10-16 08:59:46 ~26 min windows/x86_64 💿exe
✔️ 481e491 #5 2025-10-16 09:01:31 ~27 min tests/ui 📄log
✔️ 481e491 #5 2025-10-16 09:02:57 ~29 min linux/x86_64-nwaku 📦tgz
✖️ 481e491 pr19004 2025-10-16 09:28:09 ~30 min tests/e2e 📊rpt
✔️ 0dbb0c5 #6 2025-10-16 16:06:56 ~7 min tests/nim 📄log
✔️ 0dbb0c5 #6 2025-10-16 16:13:13 ~13 min linux/x86_64 📦tgz
✔️ 0dbb0c5 #6 2025-10-16 16:15:43 ~16 min ios/aarch64 📦pkg
✔️ 0dbb0c5 #6 2025-10-16 16:15:49 ~16 min tests/ui 📄log
0dbb0c5 #6 2025-10-16 16:18:23 ~18 min macos/aarch64-nwaku 📄log
✔️ 0dbb0c5 #6 2025-10-16 16:20:30 ~20 min linux/x86_64-nwaku 📦tgz
0dbb0c5 #6 2025-10-16 16:22:41 ~22 min macos/aarch64 📄log
✔️ 0dbb0c5 #6 2025-10-16 16:24:06 ~24 min windows/x86_64 💿exe
✖️ 0dbb0c5 pr19004 2025-10-16 16:32:26 ~19 min tests/e2e 📊rpt
6b65dd6 #7 2025-10-16 22:38:21 ~3 min macos/aarch64-nwaku 📄log
6b65dd6 #7 2025-10-16 22:38:22 ~3 min macos/aarch64 📄log
✔️ 6b65dd6 #7 2025-10-16 22:40:59 ~6 min tests/nim 📄log
✔️ 6b65dd6 #7 2025-10-16 22:41:31 ~6 min ios/aarch64 📦pkg
✔️ 6b65dd6 #7 2025-10-16 22:47:58 ~13 min linux/x86_64 📦tgz
✔️ 6b65dd6 #7 2025-10-16 22:48:03 ~13 min tests/ui 📄log
✔️ 6b65dd6 #7 2025-10-16 22:55:32 ~20 min linux/x86_64-nwaku 📦tgz
✔️ 6b65dd6 #7 2025-10-16 23:01:23 ~26 min windows/x86_64 💿exe
✖️ 6b65dd6 pr19004 2025-10-16 23:04:27 ~16 min tests/e2e 📊rpt
✔️ 0e9b233d #9 2025-10-16 22:41:54 ~7 min android/arm64 🤖apk 📲
f01877a #8 2025-10-16 23:17:02 ~3 min macos/aarch64-nwaku 📄log
f01877a #8 2025-10-16 23:17:03 ~3 min macos/aarch64 📄log
✔️ f01877a #8 2025-10-16 23:19:47 ~6 min tests/nim 📄log
✔️ f01877a #8 2025-10-16 23:20:09 ~6 min ios/aarch64 📦pkg
✔️ f01877a #8 2025-10-16 23:26:33 ~13 min linux/x86_64 📦tgz
✔️ f01877a #8 2025-10-16 23:26:53 ~13 min tests/ui 📄log
✔️ f01877a #8 2025-10-16 23:33:34 ~20 min linux/x86_64-nwaku 📦tgz
✔️ f01877a #8 2025-10-16 23:37:20 ~23 min windows/x86_64 💿exe
✖️ f01877a pr19004 2025-10-16 23:43:38 ~16 min tests/e2e 📊rpt
✔️ 140f218a #10 2025-10-16 23:20:40 ~7 min android/arm64 🤖apk 📲
0383937 #9 2025-10-16 23:51:08 ~3 min macos/aarch64 📄log
0383937 #9 2025-10-16 23:51:08 ~3 min macos/aarch64-nwaku 📄log
✔️ 0383937 #9 2025-10-16 23:53:49 ~6 min tests/nim 📄log
✔️ 0383937 #9 2025-10-16 23:54:35 ~7 min ios/aarch64 📦pkg
✔️ 0383937 #11 2025-10-16 23:54:40 ~7 min android/arm64 🤖apk 📲
✔️ 0383937 #9 2025-10-17 00:00:42 ~13 min linux/x86_64 📦tgz
✔️ 0383937 #9 2025-10-17 00:00:59 ~13 min tests/ui 📄log
✖️ 0383937 pr19004 2025-10-17 00:18:14 ~17 min tests/e2e 📊rpt
c618d05 #10 2025-10-17 00:09:59 ~3 min macos/aarch64-nwaku 📄log
c618d05 #10 2025-10-17 00:09:59 ~3 min macos/aarch64 📄log
✔️ c618d05 #10 2025-10-17 00:12:50 ~6 min tests/nim 📄log
✔️ c618d05 #12 2025-10-17 00:13:18 ~6 min android/arm64 🤖apk 📲
✔️ c618d05 #10 2025-10-17 00:13:20 ~6 min ios/aarch64 📦pkg
✔️ c618d05 #10 2025-10-17 00:20:08 ~13 min tests/ui 📄log
✔️ c618d05 #11 2025-10-17 00:23:06 ~9 min macos/aarch64 🍎dmg
✔️ c618d05 #11 2025-10-17 00:24:58 ~12 min linux/x86_64 📦tgz
✔️ c618d05 #10 2025-10-17 00:28:47 ~22 min linux/x86_64-nwaku 📦tgz
✔️ c618d05 #10 2025-10-17 00:29:32 ~23 min windows/x86_64 💿exe
✖️ c618d05 pr19004 2025-10-17 00:41:31 ~16 min tests/e2e 📊rpt
c1e334d #11 2025-10-17 07:52:37 ~2 min tests/ui 📄log
✔️ c1e334d #11 2025-10-17 07:56:04 ~6 min tests/nim 📄log
✔️ c1e334d #13 2025-10-17 07:56:30 ~6 min android/arm64 🤖apk 📲
✔️ c1e334d #11 2025-10-17 07:57:28 ~7 min ios/aarch64 📦pkg
c1e334d #12 2025-10-17 08:00:21 ~2 min tests/ui 📄log
✔️ c1e334d #12 2025-10-17 08:03:31 ~13 min linux/x86_64 📦tgz
✔️ c1e334d #11 2025-10-17 08:07:39 ~17 min macos/aarch64-nwaku 🍎dmg
✔️ c1e334d #12 2025-10-17 08:08:31 ~18 min macos/aarch64 🍎dmg
✔️ c1e334d #11 2025-10-17 08:09:05 ~19 min linux/x86_64-nwaku 📦tgz
✔️ c1e334d #11 2025-10-17 08:15:45 ~25 min windows/x86_64 💿exe
✖️ c1e334d pr19004 2025-10-17 08:23:41 ~20 min tests/e2e 📊rpt
d23d5d4 #13 2025-10-20 09:31:25 ~2 min tests/ui 📄log
✔️ d23d5d4 #12 2025-10-20 09:34:51 ~6 min tests/nim 📄log
✔️ d23d5d4 #12 2025-10-20 09:35:57 ~7 min ios/aarch64 📦pkg
✔️ d23d5d4 #13 2025-10-20 09:41:27 ~13 min linux/x86_64 📦tgz
✔️ d23d5d4 #12 2025-10-20 09:47:32 ~19 min macos/aarch64-nwaku 🍎dmg
✔️ d23d5d4 #13 2025-10-20 09:47:39 ~19 min macos/aarch64 🍎dmg
✔️ d23d5d4 #12 2025-10-20 09:48:32 ~20 min linux/x86_64-nwaku 📦tgz
✔️ d23d5d4 #12 2025-10-20 09:54:44 ~26 min windows/x86_64 💿exe
✖️ d23d5d4 pr19004 2025-10-20 10:02:46 ~21 min tests/e2e 📊rpt
✔️ 4b8c8fb4 #15 2025-10-20 09:35:38 ~7 min android/arm64 🤖apk 📲
13e4003 #14 2025-10-20 11:02:05 ~3 min tests/ui 📄log
✔️ 13e4003 #13 2025-10-20 11:05:16 ~6 min tests/nim 📄log
✔️ 13e4003 #13 2025-10-20 11:08:16 ~9 min ios/aarch64 📦pkg
✔️ 28ce6c51 #16 2025-10-20 11:06:07 ~7 min android/arm64 🤖apk 📲
0ee1ddd #15 2025-10-20 11:13:40 ~2 min tests/ui 📄log
✔️ 0ee1ddd #14 2025-10-20 11:17:08 ~6 min tests/nim 📄log
✔️ 0ee1ddd #17 2025-10-20 11:18:08 ~7 min android/arm64 🤖apk 📲
✔️ 0ee1ddd #14 2025-10-20 11:19:39 ~8 min ios/aarch64 📦pkg
✔️ 0ee1ddd #15 2025-10-20 11:24:20 ~13 min linux/x86_64 📦tgz
✔️ 0ee1ddd #15 2025-10-20 11:28:14 ~17 min macos/aarch64 🍎dmg
✔️ 0ee1ddd #14 2025-10-20 11:33:14 ~22 min macos/aarch64-nwaku 🍎dmg
✔️ 0ee1ddd #14 2025-10-20 11:36:04 ~24 min windows/x86_64 💿exe
✔️ 0ee1ddd pr19004 2025-10-20 11:41:20 ~16 min tests/e2e 📊rpt
✔️ bff390e8 #18 2025-10-20 17:29:04 ~13 min android/arm64 🤖apk 📲
✔️ 0ab017c4 #19 2025-10-21 17:35:45 ~20 min android/arm64 🤖apk 📲
0ec927d #16 2025-10-22 00:03:05 ~2 min tests/ui 📄log
✔️ 0ec927d #15 2025-10-22 00:07:44 ~7 min tests/nim 📄log
0ec927d #17 2025-10-22 00:15:07 ~2 min tests/ui 📄log
✔️ 0ec927d #17 2025-10-22 00:16:01 ~13 min linux/x86_64 📦tgz
✔️ 0ec927d #15 2025-10-22 00:25:31 ~25 min windows/x86_64 💿exe
✔️ 0ec927d pr19004 2025-10-22 00:34:11 ~18 min tests/e2e 📊rpt
✔️ 0ec927d PR19004 2025-10-22 00:34:29 ~8 min tests/e2e-windows 📊rpt
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 64c225b #16 2025-10-22 00:39:13 ~6 min tests/nim 📄log
✔️ 64c225b #22 2025-10-22 00:40:34 ~7 min android/arm64 🤖apk 📲
64c225b #18 2025-10-22 00:45:57 ~12 min tests/ui 📄log
✔️ 64c225b #19 2025-10-22 00:47:50 ~13 min linux/x86_64 📦tgz
✔️ 64c225b pr19004 2025-10-22 01:04:07 ~16 min tests/e2e 📊rpt
✔️ 3384a45 #17 2025-10-22 00:59:00 ~5 min tests/nim 📄log
✔️ 3384a45 #23 2025-10-22 00:59:49 ~6 min android/arm64 🤖apk 📲
✔️ 3384a45 #20 2025-10-22 01:05:15 ~12 min linux/x86_64 📦tgz
✔️ 3384a45 #19 2025-10-22 01:06:07 ~13 min tests/ui 📄log
✔️ 3384a45 #17 2025-10-22 01:17:57 ~24 min windows/x86_64 💿exe
✔️ 3384a45 pr19004 2025-10-22 01:22:19 ~16 min tests/e2e 📊rpt
✔️ 3384a45 PR19004 2025-10-22 01:27:06 ~9 min tests/e2e-windows 📊rpt
✔️ 3384a45 #17 2025-10-22 01:46:12 ~53 min ios/aarch64 📦pkg
✔️ 3384a45 #18 2025-10-22 07:22:21 ~26 min linux/x86_64-nwaku 📦tgz
✔️ 3384a45 #19 2025-10-22 07:27:41 ~32 min macos/aarch64 🍎dmg

@micieslak micieslak force-pushed the feat/issue-18834 branch 2 times, most recently from fed3537 to 5e95d3e Compare October 15, 2025 08:17
@micieslak micieslak requested a review from a team as a code owner October 15, 2025 08:17
@micieslak micieslak requested review from anastasiyaig and removed request for a team October 15, 2025 08:17
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 overall, with some minor things

@micieslak micieslak changed the title Enter seed phrase component refactored according to new desing Enter seed phrase component refactored according to new design Oct 15, 2025
@anastasiyaig
Copy link
Contributor

i will work on tests to fix them ,just ping me whenever the latest commit is please

@anastasiyaig
Copy link
Contributor

@micieslak

Test is failing because the continue button is not getting enabled when last word is entered, is that expected? I can reproduce manually too, type in last word in the grid ->> the suggestion is not going away + continue button is not enabled

I have to hit Enter one more time to get it enabled. It was not like that before (in master now entering last word enables the button)

Screen.Recording.2025-10-15.at.18.49.21.mov
  • Also, on full screen on my mac this screen looks very odd (the grid is not centered).
  • When last suggestion is shown, 3d row of the grid is fully overlapped (maybe its okay?)
  • Words in the cells are not centered
  • I see a ton of warnings in console, maybe they are harmless but looks spammy
image
WRN 2025-10-15 15:43:13.346Z qt warning                                 topics="qt" tid=20761047 category=default file=qrc:/StatusQ/Controls/StatusSeedPhraseField.qml:27 text="QML QQuickRectangle: The current style does not support customization of this control (property: \"background\" item: QQuickRectangle(0x6000010cae60, parent=0x0, geometry=0,0 0x0)). Please customize a non-native style (such as Basic, Fusion, Material, etc). For more information, see: https://doc.qt.io/qt-6/qtquickcontrols2-customize.html#customization-reference"
WRN 2025-10-15 15:43:13.347Z qt warning                                 topics="qt" tid=20761047 category=default file=qrc:/StatusQ/Controls/StatusSeedPhraseField.qml:27 text="QML QQuickRectangle: The current style does not support customization of this control (property: \"background\" item: QQuickRectangle(0x6000010cb480, parent=0x0, geometry=0,0 0x0)). Please customize a non-native style (such as Basic, Fusion, Material, etc). For more information, see: https://doc.qt.io/qt-6/qtquickcontrols2-customize.html#customization-reference"
WRN 2025-10-15 15:43:13.347Z qt warning                                 topics="qt" tid=20761047 category=default file=qrc:/StatusQ/Controls/StatusSeedPhraseField.qml:27 text="QML QQuickRectangle: The current style does not support customization of this control (property: \"background\" item: QQuickRectangle(0x6000010cbaa0, parent=0x0, geometry=0,0 0x0)). Please customize a non-native style (such as Basic, Fusion, Material, etc). For more information, see: https://doc.qt.io/qt-6/qtquickcontrols2-customize.html#customization-reference"
WRN 2025-10-15 15:43:08.918Z qt warning                                 topics="qt" tid=20761143 category=qt.qml.invalidOverride file=:0 text="qrc:/StatusQ/Popups/StatusSuccessAction.qml:61:12: Duplicate signal name: invalid override of property change signal or superclass signal"
WRN 2025-10-15 15:43:09.140Z qt warning                                 topics="qt" tid=20761143 category=qt.qml.invalidOverride file=:0 text="qrc:/StatusQ/Components/StatusDraggableListItem.qml:159:12: Duplicate signal name: invalid override of property change signal or superclass signal"
WRN 2025-10-15 15:43:09.221Z qt warning                                 topics="qt" tid=20761143 category=qt.qml.invalidOverride file=:0 text="qrc:/app/AppLayouts/Communities/controls/TokenHolderListItem.qml:117:12: Duplicate signal name: invalid override of property change signal or superclass signal"
WRN 2025-10-15 15:43:09.261Z qt warning                                 topics="qt" tid=20761143 category=qt.qml.invalidOverride file=:0 text="qrc:/imports/shared/popups/ReviewContactRequestPopup.qml:18:12: Duplicate signal name: invalid override of property change signal or superclass signal"
WRN 2025-10-15 15:43:09.261Z qt warning                                 topics="qt" tid=20761143 category=qt.qml.invalidOverride file=:0 text="qrc:/imports/shared/popups/ReviewContactRequestPopup.qml:19:12: Duplicate signal name: invalid override of property change signal or superclass signal"
WRN 2025-10-15 15:43:09.265Z qt warning                                 topics="qt" tid=20761143 category=qt.qml.invalidOverride file=:0 text="qrc:/imports/shared/popups/SendContactRequestModal.qml:25:12: Duplicate signal name: invalid override of property change signal or superclass signal"
WRN 2025-10-15 15:43:09.988Z qt warning                                 topics="qt" tid=20761047 category=default file=qrc:/StatusQ/Components/StatusLanguageSelector.qml:81 text="QML QQuickRectangle*: The current style does not support customization of this control (property: \"background\" item: QQuickRectangle_QML_419(0x60000107cee0, parent=0x0, geometry=0,0 0x0)). Please customize a non-native style (such as Basic, Fusion, Material, etc). For more information, see: https://doc.qt.io/qt-6/qtquickcontrols2-customize.html#customization-reference"
WRN 2025-10-15 15:43:10.073Z qt warning                                 topics="qt" tid=20761047 category=default file=qrc:/StatusQ/Components/StatusLanguageSelector.qml:87 text="QML RowLayout: The current style does not support customization of this control (property: \"contentItem\" item: QQuickRowLayout(0x600001617750, parent=0x0, geometry=0,0 0x0)). Please customize a non-native style (such as Basic, Fusion, Material, etc). For more information, see: https://doc.qt.io/qt-6/qtquickcontrols2-customize.html#customization-reference"
INF 2025-10-15 15:43:10.096Z qt message                                 topics="qt" tid=20761047 category=qml file=qrc:/main.qml:328 text=">>> Status Desktop v2.34.0-dev-1086-g2b2263e56 started, using Qt version 6.9.2"
WRN 2025-10-15 15:43:10.098Z qt warning                                 topics="qt" tid=20761047 category=default file=qrc:/app/AppLayouts/Onboarding/stores/OnboardingStore.qml:30 text="TypeError: Cannot read property 'backupPath' of undefined"
WRN 2025-10-15 15:43:10.098Z qt warning                                 topics="qt" tid=20761047 category=default file=qrc:/app/AppLayouts/Onboarding/stores/OnboardingStore.qml:17 text="ReferenceError: appSettings is not defined"

@micieslak micieslak force-pushed the feat/issue-18834 branch 6 times, most recently from 0383937 to c618d05 Compare October 17, 2025 00:06
Copy link
Contributor

@alexjba alexjba left a comment

Choose a reason for hiding this comment

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

Awesome work! Just nitpicks from my side. Didn't test it though. I see Nastya has it covered

The only thing that might be worth updating from my point of view is the way we're using callbacks in a signal.
But since it's a very specific component we can live with it for sure! Feel free to ignore.

@micieslak micieslak force-pushed the feat/issue-18834 branch 2 times, most recently from 0ec927d to 64c225b Compare October 22, 2025 00:32
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.

Really nice component cleanup! Also the new design looks good!!

I just left minor comments and to add some improvement.. When switching from 12 to 18 or to 24, the focus always changes to the first text field, losing the current text field you were using. It can be of course a separate task and nice to have one :)

Good job!

readonly property var lengths: [12, 18, 24]
readonly property int selectedLength: {
if (v12.checked)
return 12
Copy link
Contributor

Choose a reason for hiding this comment

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

Minor: Maybe you could use constants instead everywhere here for 12, 18 and 14

Copy link
Member Author

Choose a reason for hiding this comment

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

As it's local thing I would just keep as it is. Those constants would have those number in its name as well...

property string filteringPrefix

readonly property int twoColsThreshold: 450
readonly property int oneColThreshold: 400
Copy link
Contributor

Choose a reason for hiding this comment

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

Should we use here Theme.portraitBreakpoint?

Copy link
Member Author

Choose a reason for hiding this comment

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

It's not applicable there. Ideally design team should provide some more curated values for that later.

onWordSelected: word => {
inputModel.setEntry(d.currentIndex, word, true)

// don't loos focust on the list entry, close suggestions
Copy link
Contributor

Choose a reason for hiding this comment

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

Spelling: lose focus

}

onSeedphraseUpdated: function(valid, seedphrase) {
onSeedphraseProvided: seedPhrase => {
Copy link
Contributor

Choose a reason for hiding this comment

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

Would it make sense to have this validation inside the component?? Why the instantiator has the ability to change that?? 🤔

Copy link
Member Author

Choose a reason for hiding this comment

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

Basically the EnterSeedPhrase provides basic validation by checking if provided words are in a dictionary. On top user can do arbitrary validation and set arbitrary error message, specific to given use case. It makes the component more generic and OCP principle compliant.

@micieslak micieslak merged commit 59bb23e into master Oct 22, 2025
13 of 14 checks passed
@micieslak micieslak deleted the feat/issue-18834 branch October 22, 2025 16:50
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] Hints when filling recovery phrase are overlapped by keyboard

6 participants