]> git.proxmox.com Git - flutter/proxmox_login_manager.git/commitdiff
login form: count the loading progresses
authorDominik Csapak <d.csapak@proxmox.com>
Thu, 20 Apr 2023 12:18:06 +0000 (14:18 +0200)
committerDominik Csapak <d.csapak@proxmox.com>
Fri, 21 Apr 2023 12:19:23 +0000 (14:19 +0200)
instead of using a bool flag for that. in case the login and realm
selector both start, but one is finished before the other, the loading
mask vanished without explanation.

this way, we remove the mask only when both are finished

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
lib/proxmox_login_form.dart

index fe79c505e6b3bc5b9624a60d7b99956d989384b1..d807da4f2836285b70ff50e6430e65425b0a0d93 100644 (file)
@@ -13,10 +13,10 @@ import 'package:proxmox_login_manager/proxmox_tfa_form.dart';
 import 'package:proxmox_login_manager/extension.dart';
 
 class ProxmoxProgressModel {
-  bool inProgress = false;
+  int inProgress = 0;
   String message = 'Loading...';
   ProxmoxProgressModel({
-    this.inProgress = false,
+    this.inProgress = 0,
     this.message = 'Loading...',
   });
 }
@@ -194,9 +194,6 @@ class _ProxmoxLoginPageState extends State<ProxmoxLoginPage> {
     final userModel = widget.userModel;
     _progressModel = ProxmoxProgressModel();
     if (!widget.isCreate! && userModel != null) {
-      _progressModel
-        ..inProgress = true
-        ..message = 'Connection test...';
       _originController.text = userModel.origin?.toString() ?? '';
       _accessDomains = _getAccessDomains();
       _usernameController.text = userModel.username!;
@@ -363,7 +360,7 @@ class _ProxmoxLoginPageState extends State<ProxmoxLoginPage> {
                 ),
               ),
             ),
-            if (_progressModel.inProgress)
+            if (_progressModel.inProgress > 0)
               ProxmoxProgressOverlay(message: _progressModel.message),
           ],
         ),
@@ -375,7 +372,7 @@ class _ProxmoxLoginPageState extends State<ProxmoxLoginPage> {
       {String ticket = '', String? mRealm}) async {
     setState(() {
       _progressModel
-        ..inProgress = true
+        ..inProgress += 1
         ..message = 'Authenticating...';
     });
 
@@ -462,14 +459,14 @@ class _ProxmoxLoginPageState extends State<ProxmoxLoginPage> {
       }
     }
     setState(() {
-      _progressModel.inProgress = false;
+      _progressModel.inProgress -= 1;
     });
   }
 
   Future<List<PveAccessDomainModel?>?> _getAccessDomains() async {
     setState(() {
       _progressModel
-        ..inProgress = true
+        ..inProgress += 1
         ..message = 'Connection test...';
     });
     var host = _originController.text.trim();
@@ -527,7 +524,7 @@ class _ProxmoxLoginPageState extends State<ProxmoxLoginPage> {
     );
 
     setState(() {
-      _progressModel.inProgress = false;
+      _progressModel.inProgress -= 1;
       _selectedDomain = selection;
     });