misc-seed-page-fixes (#2280)

* feat: Trim pasted seed * fix: Fix Seed Type selection

Konstantin Ullrich committed May 21, 2025 at 00:24 UTC 43808992ec852b28969d6f45d11a8259c0d26fe2
2 files changed +27 -14
lib/src/screens/restore/wallet_restore_from_seed_form.dart
+24 -11
@@ -82,8 +82,11 @@ class WalletRestoreFromSeedFormState extends State<WalletRestoreFromSeedForm> {
82
83 @override
84 void initState() {
85 - // _setSeedType(widget.seedTypeViewModel.moneroSeedType);
86 - _setSeedType(MoneroSeedType.defaultSeedType);
85 + if (widget.type == WalletType.monero) {
86 + _setSeedType(widget.seedSettingsViewModel.moneroSeedType);
87 + } else {
88 + _setSeedType(MoneroSeedType.defaultSeedType);
89 + }
90 _setLanguageLabel(language);
91
92 if (passwordTextEditingController != null) {
@@ -118,7 +121,8 @@ class WalletRestoreFromSeedFormState extends State<WalletRestoreFromSeedForm> {
121 }
122
123 if (repeatedPasswordListener != null) {
121 - repeatedPasswordTextEditingController?.removeListener(repeatedPasswordListener!);
124 + repeatedPasswordTextEditingController
125 + ?.removeListener(repeatedPasswordListener!);
126 }
127
128 super.dispose();
@@ -158,11 +162,13 @@ class WalletRestoreFromSeedFormState extends State<WalletRestoreFromSeedForm> {
162 alignment: Alignment.centerRight,
163 children: [
164 BaseTextFormField(
161 - key: ValueKey('wallet_restore_from_seed_wallet_name_textfield_key'),
165 + key: ValueKey(
166 + 'wallet_restore_from_seed_wallet_name_textfield_key'),
167 controller: nameTextEditingController,
168 hintText: S.of(context).wallet_name,
169 suffixIcon: IconButton(
165 - key: ValueKey('wallet_restore_from_seed_wallet_name_refresh_button_key'),
170 + key: ValueKey(
171 + 'wallet_restore_from_seed_wallet_name_refresh_button_key'),
172 onPressed: () async {
173 final rName = await generateName();
174 FocusManager.instance.primaryFocus?.unfocus();
@@ -202,12 +208,15 @@ class WalletRestoreFromSeedFormState extends State<WalletRestoreFromSeedForm> {
208 language: language,
209 type: widget.type,
210 onSeedChange: onSeedChange,
205 - seedTextFieldKey: ValueKey('wallet_restore_from_seed_wallet_seeds_textfield_key'),
206 - pasteButtonKey: ValueKey('wallet_restore_from_seed_wallet_seeds_paste_button_key'),
211 + seedTextFieldKey:
212 + ValueKey('wallet_restore_from_seed_wallet_seeds_textfield_key'),
213 + pasteButtonKey: ValueKey(
214 + 'wallet_restore_from_seed_wallet_seeds_paste_button_key'),
215 ),
216 if ([WalletType.monero, WalletType.wownero].contains(widget.type))
217 GestureDetector(
210 - key: ValueKey('wallet_restore_from_seed_seedtype_picker_button_key'),
218 + key: ValueKey(
219 + 'wallet_restore_from_seed_seedtype_picker_button_key'),
220 onTap: () async {
221 await showPopUp<void>(
222 context: context,
@@ -215,7 +224,9 @@ class WalletRestoreFromSeedFormState extends State<WalletRestoreFromSeedForm> {
224 items: _getItems(),
225 selectedAtIndex: isPolyseed
226 ? 1
218 - : (seedTypeController.value.text.contains("14") && widget.type == WalletType.wownero) || isBip39
227 + : (seedTypeController.value.text.contains("14") &&
228 + widget.type == WalletType.wownero) ||
229 + isBip39
230 ? 2
231 : 0,
232 mainAxisAlignment: MainAxisAlignment.start,
@@ -249,7 +260,8 @@ class WalletRestoreFromSeedFormState extends State<WalletRestoreFromSeedForm> {
260 obscureText: true)
261 ],
262 if (widget.displayLanguageSelector)
252 - if (!seedTypeController.value.text.contains("14") && widget.displayLanguageSelector)
263 + if (!seedTypeController.value.text.contains("14") &&
264 + widget.displayLanguageSelector)
265 GestureDetector(
266 onTap: () async {
267 await showPopUp<void>(
@@ -279,7 +291,8 @@ class WalletRestoreFromSeedFormState extends State<WalletRestoreFromSeedForm> {
291 BlockchainHeightWidget(
292 focusNode: widget.blockHeightFocusNode,
293 key: blockchainHeightKey,
282 - blockHeightTextFieldKey: ValueKey('wallet_restore_from_seed_blockheight_textfield_key'),
294 + blockHeightTextFieldKey: ValueKey(
295 + 'wallet_restore_from_seed_blockheight_textfield_key'),
296 onHeightOrDateEntered: widget.onHeightOrDateEntered,
297 hasDatePicker:
298 [WalletType.monero, WalletType.wownero].contains(widget.type),
lib/src/widgets/seed_widget.dart
+3 -3
@@ -146,12 +146,12 @@ class SeedWidgetState extends State<SeedWidget> {
146 }
147
148 Future<void> _pasteText() async {
149 - final value = await Clipboard.getData('text/plain');
149 + final value = (await Clipboard.getData('text/plain'))?.text?.trim();
150
151 - if (value?.text?.isNotEmpty ?? false) {
151 + if (value?.isNotEmpty ?? false) {
152 setState(() {
153 _showPlaceholder = false;
154 - controller.text = value!.text!;
154 + controller.text = value!;
155 });
156 }
157 }