diff --git a/app/lib/screens/wallets/send.dart b/app/lib/screens/wallets/send.dart index de24d5d8c..2d59ca676 100644 --- a/app/lib/screens/wallets/send.dart +++ b/app/lib/screens/wallets/send.dart @@ -110,25 +110,33 @@ class _WalletSendScreenState extends ConsumerState { final fromAddress = fromController.text.trim(); toAddressError = null; if (toAddress.isEmpty) { - toAddressError = "Address can't be empty"; + setState(() { + toAddressError = "Address can't be empty"; + }); return false; } if (toAddress == fromAddress) { - toAddressError = '"To" and "From" addresses must be different'; + setState(() { + toAddressError = '"To" and "From" addresses must be different'; + }); return false; } if (chainType == ChainType.TFChain) { if (toAddress.length != 48) { - toAddressError = 'Address length should be 48 characters'; + setState(() { + toAddressError = 'Address length should be 48 characters'; + }); return false; } } if (chainType == ChainType.Stellar) { if (!isValidStellarAddress(toAddress)) { - toAddressError = 'Invaild Stellar address'; + setState(() { + toAddressError = 'Invaild Stellar address'; + }); return false; } @@ -137,16 +145,23 @@ class _WalletSendScreenState extends ConsumerState { final Wallet? wallet = matchingWallets.isNotEmpty ? matchingWallets.first : null; if (wallet != null && wallet.stellarBalance == '-1') { - toAddressError = 'Wallet not activated on stellar'; + setState(() { + toAddressError = 'Wallet not activated on stellar'; + }); return false; } else { final balance = await Stellar.getBalanceByAccountId(toAddress); if (balance == '-1') { - toAddressError = 'Wallet not activated on stellar'; + setState(() { + toAddressError = 'Wallet not activated on stellar'; + }); return false; } } } + setState(() { + toAddressError = null; + }); return true; } @@ -196,6 +211,7 @@ class _WalletSendScreenState extends ConsumerState { void _selectToAddress(String address) { toController.text = address; + _validateToAddress(); setState(() {}); } @@ -276,6 +292,9 @@ class _WalletSendScreenState extends ConsumerState { color: Theme.of(context).colorScheme.onSurface, ), controller: toController, + onChanged: (text) async { + _validateToAddress(); + }, decoration: InputDecoration( labelText: 'To', errorText: toAddressError,