From 75c683da0384caec2bcf4d8c9b95f5f45066c84d Mon Sep 17 00:00:00 2001 From: Micah Morrison Date: Tue, 21 Jan 2025 12:17:13 -0500 Subject: [PATCH] Fix profile modal staying open after logging into new account --- lib/account/pages/login_page.dart | 5 +++-- lib/account/widgets/profile_modal_body.dart | 6 +++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/account/pages/login_page.dart b/lib/account/pages/login_page.dart index 0958f35b3..22f548c75 100644 --- a/lib/account/pages/login_page.dart +++ b/lib/account/pages/login_page.dart @@ -22,9 +22,10 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart'; class LoginPage extends StatefulWidget { final VoidCallback popRegister; + final VoidCallback popModal; final bool anonymous; - const LoginPage({super.key, required this.popRegister, this.anonymous = false}); + const LoginPage({super.key, required this.popRegister, required this.popModal, this.anonymous = false}); @override State createState() => _LoginPageState(); @@ -149,7 +150,7 @@ class _LoginPageState extends State with SingleTickerProviderStateMix showSnackbar(AppLocalizations.of(context)!.loginFailed(state.errorMessage ?? AppLocalizations.of(context)!.missingErrorMessage)); } else if (state.status == AuthStatus.success && context.read().state.isLoggedIn) { - Navigator.of(context).pop(); + widget.popModal(); showSnackbar(AppLocalizations.of(context)!.loginSucceeded); } else if (state.status == AuthStatus.contentWarning) { bool acceptedContentWarning = false; diff --git a/lib/account/widgets/profile_modal_body.dart b/lib/account/widgets/profile_modal_body.dart index b7159bdfe..f3f2dc7ac 100644 --- a/lib/account/widgets/profile_modal_body.dart +++ b/lib/account/widgets/profile_modal_body.dart @@ -52,6 +52,10 @@ class _ProfileModalBodyState extends State { ProfileModalBody.shellNavigatorKey.currentState!.pop(); } + void popModal() { + Navigator.of(context).pop(); + } + @override Widget build(BuildContext context) { return Navigator( @@ -86,7 +90,7 @@ class _ProfileModalBodyState extends State { break; case '/login': - page = LoginPage(popRegister: popRegister, anonymous: (settings.arguments as Map)['anonymous']!); + page = LoginPage(popRegister: popRegister, popModal: popModal, anonymous: (settings.arguments as Map)['anonymous']!); break; } return SwipeablePageRoute(