From ef7f6c093f68ba5feb0c97247212dcf1d6bb00fc Mon Sep 17 00:00:00 2001 From: itsscb Date: Sat, 4 Nov 2023 01:58:15 +0100 Subject: [PATCH] ft/disables buttons on submit --- frontend/app/lib/pages/login_overlay.dart | 49 +++++++++++++---------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/frontend/app/lib/pages/login_overlay.dart b/frontend/app/lib/pages/login_overlay.dart index 21e265f..6d59622 100644 --- a/frontend/app/lib/pages/login_overlay.dart +++ b/frontend/app/lib/pages/login_overlay.dart @@ -3,11 +3,28 @@ import 'package:app/widgets/background.dart'; import 'package:flutter/material.dart'; Future showLogin(BuildContext context) async { - final _formKey = GlobalKey(); + final formKey = GlobalKey(); final mailController = TextEditingController(); final passwordController = TextEditingController(); - bool _loggedin = false; + bool submitted = false; + bool loggedin = false; + void login() { + if (formKey.currentState!.validate()) { + submitted = true; + BackendService.login( + email: mailController.text, + password: passwordController.text, + ).then( + (r) { + if (r) { + loggedin = r; + Navigator.pop(context, true); + } + }, + ); + } + } await showModalBottomSheet( useSafeArea: true, @@ -42,7 +59,7 @@ Future showLogin(BuildContext context) async { ), ), Form( - key: _formKey, + key: formKey, child: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, crossAxisAlignment: CrossAxisAlignment.center, @@ -97,27 +114,15 @@ Future showLogin(BuildContext context) async { mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ ElevatedButton( - onPressed: () { - Navigator.pop(context); - }, + onPressed: !submitted + ? () { + Navigator.pop(context); + } + : null, child: const Icon(Icons.arrow_back), ), ElevatedButton( - onPressed: () { - if (_formKey.currentState!.validate()) { - BackendService.login( - email: mailController.text, - password: passwordController.text, - ).then( - (r) { - if (r) { - _loggedin = r; - Navigator.pop(context, true); - } - }, - ); - } - }, + onPressed: !submitted ? login : null, child: const Icon(Icons.login), ), ], @@ -130,5 +135,5 @@ Future showLogin(BuildContext context) async { ), ); }); - return _loggedin; + return loggedin; }