diff --git a/lib/core/node_port_validator.dart b/lib/core/node_port_validator.dart index 89d4ec1da..f106b2bbe 100644 --- a/lib/core/node_port_validator.dart +++ b/lib/core/node_port_validator.dart @@ -4,8 +4,10 @@ import 'package:cake_wallet/core/validator.dart'; class NodePortValidator extends TextValidator { NodePortValidator() : super( - errorMessage: S.current.error_text_node_port, - minLength: 0, - maxLength: 5, - pattern: '^[0-9]'); + errorMessage: S.current.error_text_node_port, + minLength: 0, + maxLength: 5, + pattern: '^[0-9]', + isAutovalidate: true, + ); } diff --git a/lib/src/screens/nodes/widgets/node_form.dart b/lib/src/screens/nodes/widgets/node_form.dart index 5036d8a2a..05a365c21 100644 --- a/lib/src/screens/nodes/widgets/node_form.dart +++ b/lib/src/screens/nodes/widgets/node_form.dart @@ -19,7 +19,10 @@ class NodeForm extends StatelessWidget { this.type, }) : _addressController = TextEditingController(text: editingNode?.uri.host.toString()), _pathController = TextEditingController(text: editingNode?.path.toString()), - _portController = TextEditingController(text: editingNode?.uri.port.toString()), + _portController = TextEditingController( + text: (editingNode != null && editingNode.uri.hasPort) + ? editingNode.uri.port.toString() + : ''), _loginController = TextEditingController(text: editingNode?.login), _passwordController = TextEditingController(text: editingNode?.password), _socksAddressController = TextEditingController(text: editingNode?.socksProxyAddress) { @@ -27,7 +30,7 @@ class NodeForm extends StatelessWidget { nodeViewModel ..setAddress((editingNode!.uri.host.toString())) ..setPath((editingNode!.path.toString())) - ..setPort((editingNode!.uri.port.toString())) + ..setPort((editingNode!.uri.hasPort ? editingNode!.uri.port.toString() : '')) ..setPassword((editingNode!.password ?? '')) ..setLogin((editingNode!.login ?? '')) ..setSSL((editingNode!.isSSL)) diff --git a/lib/view_model/node_list/node_create_or_edit_view_model.dart b/lib/view_model/node_list/node_create_or_edit_view_model.dart index 85c52b27b..1f988eeef 100644 --- a/lib/view_model/node_list/node_create_or_edit_view_model.dart +++ b/lib/view_model/node_list/node_create_or_edit_view_model.dart @@ -71,8 +71,7 @@ abstract class NodeCreateOrEditViewModelBase with Store { @computed bool get isReady => - (address.isNotEmpty && port.isNotEmpty) || - _walletType == WalletType.decred; // Allow an empty address. + (address.isNotEmpty) || _walletType == WalletType.decred; // Allow an empty address. bool get hasAuthCredentials => _walletType == WalletType.monero || _walletType == WalletType.wownero || _walletType == WalletType.haven;