diff --git a/lib/features/login/view/widgets/form_fields/server_address_form_field.dart b/lib/features/login/view/widgets/form_fields/server_address_form_field.dart index 207d74c..b03ed15 100644 --- a/lib/features/login/view/widgets/form_fields/server_address_form_field.dart +++ b/lib/features/login/view/widgets/form_fields/server_address_form_field.dart @@ -42,15 +42,6 @@ class _ServerAddressFormFieldState extends State { initialValue: widget.initialValue, name: ServerAddressFormField.fkServerAddress, autovalidateMode: AutovalidateMode.onUserInteraction, - validator: (value) { - if (value?.trim().isEmpty ?? true) { - return S.of(context)!.serverAddressMustNotBeEmpty; - } - if (!RegExp(r"https?://.*").hasMatch(value!)) { - return S.of(context)!.serverAddressMustIncludeAScheme; - } - return null; - }, builder: (field) { return RawAutocomplete( focusNode: _focusNode, @@ -74,7 +65,7 @@ class _ServerAddressFormFieldState extends State { }, fieldViewBuilder: (context, textEditingController, focusNode, onFieldSubmitted) { - return TextField( + return TextFormField( controller: textEditingController, focusNode: focusNode, decoration: InputDecoration( @@ -93,10 +84,20 @@ class _ServerAddressFormFieldState extends State { : null, ), autofocus: false, - onSubmitted: (_) { + onFieldSubmitted: (_) { onFieldSubmitted(); _formatInput(); }, + autovalidateMode: AutovalidateMode.onUserInteraction, + validator: (value) { + if (value?.trim().isEmpty ?? true) { + return S.of(context)!.serverAddressMustNotBeEmpty; + } + if (!RegExp(r"^https?://.*").hasMatch(value!)) { + return S.of(context)!.serverAddressMustIncludeAScheme; + } + return null; + }, keyboardType: TextInputType.url, onChanged: (value) { field.didChange(value);