misc-seed-page-fixes (#2280)

* feat: Trim pasted seed

* fix: Fix Seed Type selection
This commit is contained in:
Konstantin Ullrich 2025-05-21 00:24:30 +02:00 committed by GitHub
parent 79faeb98af
commit 43808992ec
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 27 additions and 14 deletions

View file

@ -82,8 +82,11 @@ class WalletRestoreFromSeedFormState extends State<WalletRestoreFromSeedForm> {
@override @override
void initState() { void initState() {
// _setSeedType(widget.seedTypeViewModel.moneroSeedType); if (widget.type == WalletType.monero) {
_setSeedType(MoneroSeedType.defaultSeedType); _setSeedType(widget.seedSettingsViewModel.moneroSeedType);
} else {
_setSeedType(MoneroSeedType.defaultSeedType);
}
_setLanguageLabel(language); _setLanguageLabel(language);
if (passwordTextEditingController != null) { if (passwordTextEditingController != null) {
@ -118,7 +121,8 @@ class WalletRestoreFromSeedFormState extends State<WalletRestoreFromSeedForm> {
} }
if (repeatedPasswordListener != null) { if (repeatedPasswordListener != null) {
repeatedPasswordTextEditingController?.removeListener(repeatedPasswordListener!); repeatedPasswordTextEditingController
?.removeListener(repeatedPasswordListener!);
} }
super.dispose(); super.dispose();
@ -158,11 +162,13 @@ class WalletRestoreFromSeedFormState extends State<WalletRestoreFromSeedForm> {
alignment: Alignment.centerRight, alignment: Alignment.centerRight,
children: [ children: [
BaseTextFormField( BaseTextFormField(
key: ValueKey('wallet_restore_from_seed_wallet_name_textfield_key'), key: ValueKey(
'wallet_restore_from_seed_wallet_name_textfield_key'),
controller: nameTextEditingController, controller: nameTextEditingController,
hintText: S.of(context).wallet_name, hintText: S.of(context).wallet_name,
suffixIcon: IconButton( suffixIcon: IconButton(
key: ValueKey('wallet_restore_from_seed_wallet_name_refresh_button_key'), key: ValueKey(
'wallet_restore_from_seed_wallet_name_refresh_button_key'),
onPressed: () async { onPressed: () async {
final rName = await generateName(); final rName = await generateName();
FocusManager.instance.primaryFocus?.unfocus(); FocusManager.instance.primaryFocus?.unfocus();
@ -202,12 +208,15 @@ class WalletRestoreFromSeedFormState extends State<WalletRestoreFromSeedForm> {
language: language, language: language,
type: widget.type, type: widget.type,
onSeedChange: onSeedChange, onSeedChange: onSeedChange,
seedTextFieldKey: ValueKey('wallet_restore_from_seed_wallet_seeds_textfield_key'), seedTextFieldKey:
pasteButtonKey: ValueKey('wallet_restore_from_seed_wallet_seeds_paste_button_key'), ValueKey('wallet_restore_from_seed_wallet_seeds_textfield_key'),
pasteButtonKey: ValueKey(
'wallet_restore_from_seed_wallet_seeds_paste_button_key'),
), ),
if ([WalletType.monero, WalletType.wownero].contains(widget.type)) if ([WalletType.monero, WalletType.wownero].contains(widget.type))
GestureDetector( GestureDetector(
key: ValueKey('wallet_restore_from_seed_seedtype_picker_button_key'), key: ValueKey(
'wallet_restore_from_seed_seedtype_picker_button_key'),
onTap: () async { onTap: () async {
await showPopUp<void>( await showPopUp<void>(
context: context, context: context,
@ -215,7 +224,9 @@ class WalletRestoreFromSeedFormState extends State<WalletRestoreFromSeedForm> {
items: _getItems(), items: _getItems(),
selectedAtIndex: isPolyseed selectedAtIndex: isPolyseed
? 1 ? 1
: (seedTypeController.value.text.contains("14") && widget.type == WalletType.wownero) || isBip39 : (seedTypeController.value.text.contains("14") &&
widget.type == WalletType.wownero) ||
isBip39
? 2 ? 2
: 0, : 0,
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
@ -249,7 +260,8 @@ class WalletRestoreFromSeedFormState extends State<WalletRestoreFromSeedForm> {
obscureText: true) obscureText: true)
], ],
if (widget.displayLanguageSelector) if (widget.displayLanguageSelector)
if (!seedTypeController.value.text.contains("14") && widget.displayLanguageSelector) if (!seedTypeController.value.text.contains("14") &&
widget.displayLanguageSelector)
GestureDetector( GestureDetector(
onTap: () async { onTap: () async {
await showPopUp<void>( await showPopUp<void>(
@ -279,7 +291,8 @@ class WalletRestoreFromSeedFormState extends State<WalletRestoreFromSeedForm> {
BlockchainHeightWidget( BlockchainHeightWidget(
focusNode: widget.blockHeightFocusNode, focusNode: widget.blockHeightFocusNode,
key: blockchainHeightKey, key: blockchainHeightKey,
blockHeightTextFieldKey: ValueKey('wallet_restore_from_seed_blockheight_textfield_key'), blockHeightTextFieldKey: ValueKey(
'wallet_restore_from_seed_blockheight_textfield_key'),
onHeightOrDateEntered: widget.onHeightOrDateEntered, onHeightOrDateEntered: widget.onHeightOrDateEntered,
hasDatePicker: hasDatePicker:
[WalletType.monero, WalletType.wownero].contains(widget.type), [WalletType.monero, WalletType.wownero].contains(widget.type),

View file

@ -146,12 +146,12 @@ class SeedWidgetState extends State<SeedWidget> {
} }
Future<void> _pasteText() async { Future<void> _pasteText() async {
final value = await Clipboard.getData('text/plain'); final value = (await Clipboard.getData('text/plain'))?.text?.trim();
if (value?.text?.isNotEmpty ?? false) { if (value?.isNotEmpty ?? false) {
setState(() { setState(() {
_showPlaceholder = false; _showPlaceholder = false;
controller.text = value!.text!; controller.text = value!;
}); });
} }
} }