[pve-devel] [PATCH proxmox_login_manager 1/4] fix: ui: disable continue button by default in login form

Shan Shaji s.shaji at proxmox.com
Tue Nov 4 18:38:06 CET 2025


When adding a remote the continue button is initially submit-able,
even though the "origin" field is empty. Tapping the button will show the
error and greys out the button.

To improve UX the button will be disabled by default and gets enabled
only if the form validation succeeds. Also fixed a typo in the boolean
variable.

Signed-off-by: Shan Shaji <s.shaji at proxmox.com>
---
 lib/proxmox_login_form.dart | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/lib/proxmox_login_form.dart b/lib/proxmox_login_form.dart
index 030e546..9e95f27 100644
--- a/lib/proxmox_login_form.dart
+++ b/lib/proxmox_login_form.dart
@@ -211,7 +211,7 @@ class _ProxmoxLoginPageState extends State<ProxmoxLoginPage> {
   PveAccessDomainModel? _selectedDomain;
   final _formKey = GlobalKey<FormState>();
   ProxmoxProgressModel _progressModel = ProxmoxProgressModel();
-  bool _submittButtonEnabled = true;
+  bool _submitButtonEnabled = false;
   bool _canSavePassword = false;
   bool _savePasswordCB = false;
 
@@ -330,7 +330,7 @@ class _ProxmoxLoginPageState extends State<ProxmoxLoginPage> {
                             key: _formKey,
                             onChanged: () {
                               setState(() {
-                                _submittButtonEnabled =
+                                _submitButtonEnabled =
                                     _formKey.currentState!.validate();
                               });
                             },
@@ -381,7 +381,7 @@ class _ProxmoxLoginPageState extends State<ProxmoxLoginPage> {
                                     final isValid =
                                         _formKey.currentState!.validate();
                                     setState(() {
-                                      _submittButtonEnabled = isValid;
+                                      _submitButtonEnabled = isValid;
                                     });
                                     if (isValid) {
                                       setState(() {
@@ -389,12 +389,12 @@ class _ProxmoxLoginPageState extends State<ProxmoxLoginPage> {
                                       });
                                     }
                                   },
-                                  onPasswordSubmitted: _submittButtonEnabled
+                                  onPasswordSubmitted: _submitButtonEnabled
                                       ? () {
                                           final isValid =
                                               _formKey.currentState!.validate();
                                           setState(() {
-                                            _submittButtonEnabled = isValid;
+                                            _submitButtonEnabled = isValid;
                                           });
                                           if (isValid) {
                                             _onLoginButtonPressed();
@@ -408,13 +408,13 @@ class _ProxmoxLoginPageState extends State<ProxmoxLoginPage> {
                                     child: SizedBox(
                                       width: MediaQuery.of(context).size.width,
                                       child: TextButton(
-                                        onPressed: _submittButtonEnabled
+                                        onPressed: _submitButtonEnabled
                                             ? () {
                                                 final isValid = _formKey
                                                     .currentState!
                                                     .validate();
                                                 setState(() {
-                                                  _submittButtonEnabled =
+                                                  _submitButtonEnabled =
                                                       isValid;
                                                 });
                                                 if (isValid) {
-- 
2.50.1





More information about the pve-devel mailing list