diff options
Diffstat (limited to 'lib/screens/login_screen.dart')
-rw-r--r-- | lib/screens/login_screen.dart | 32 |
1 files changed, 12 insertions, 20 deletions
diff --git a/lib/screens/login_screen.dart b/lib/screens/login_screen.dart index c98a565..964c28b 100644 --- a/lib/screens/login_screen.dart +++ b/lib/screens/login_screen.dart @@ -20,7 +20,7 @@ class _LoginScreenState extends State<LoginScreen> final Auth _auth = Auth(); - bool isLoading = false; + final ValueNotifier<bool> _loadingNotifier = ValueNotifier<bool>(false); bool isInit = false; final padding = 16.0; @@ -110,18 +110,14 @@ class _LoginScreenState extends State<LoginScreen> ); void onLoginClicked(BuildContext context) { - setState(() { - isLoading = true; - }); + _loadingNotifier.value = true; _auth .signInWithEmailAndPassword( email: _emailController.text, password: _passwordController.text, ) .then((result) { - setState(() { - isLoading = false; - }); + _loadingNotifier.value = false; result.fold( (user) { if (user != null && user.emailVerified == false) { @@ -141,13 +137,9 @@ class _LoginScreenState extends State<LoginScreen> } void onGoogleLoginClicked(BuildContext context) { - setState(() { - isLoading = true; - }); + _loadingNotifier.value = true; _auth.signInWithGoogle().then((result) { - setState(() { - isLoading = false; - }); + _loadingNotifier.value = false; result.fold( (user) {}, (error) => handleError(error), @@ -156,13 +148,9 @@ class _LoginScreenState extends State<LoginScreen> } void onGithubLoginClicked(BuildContext context) { - setState(() { - isLoading = true; - }); + _loadingNotifier.value = true; _auth.signInWithGithub().then((result) { - setState(() { - isLoading = false; - }); + _loadingNotifier.value = false; result.fold( (user) {}, (error) => handleError(error), @@ -208,7 +196,11 @@ class _LoginScreenState extends State<LoginScreen> ), ), ), - isLoading ? const LoadingModal() : const SizedBox.shrink(), + ValueListenableBuilder( + valueListenable: _loadingNotifier, + builder: (context, value, child) => + value ? const LoadingModal() : const SizedBox.shrink(), + ), ], ), ); |