From 036d0db4ce22de028d720664960f7439dfac110b Mon Sep 17 00:00:00 2001 From: dab246 Date: Thu, 20 Jul 2023 15:49:26 +0700 Subject: [PATCH] TF-2046 Change navigate to page use `popAndPushNamed` instead of using `pushReplacementNamed` (cherry picked from commit 8e8beccc25e7a6bd3199363cebc36efb74854740) --- lib/features/home/presentation/home_controller.dart | 6 +++--- lib/features/login/presentation/login_controller.dart | 4 ++-- lib/features/mailbox/presentation/mailbox_controller.dart | 2 +- .../presentation/manage_account_dashboard_controller.dart | 2 +- lib/features/session/presentation/session_controller.dart | 4 ++-- lib/features/thread/presentation/thread_controller.dart | 2 +- lib/main/routes/route_navigation.dart | 4 ++++ 7 files changed, 14 insertions(+), 10 deletions(-) diff --git a/lib/features/home/presentation/home_controller.dart b/lib/features/home/presentation/home_controller.dart index 38cfacc99..0afa400c7 100644 --- a/lib/features/home/presentation/home_controller.dart +++ b/lib/features/home/presentation/home_controller.dart @@ -116,7 +116,7 @@ class HomeController extends BaseController { } void _goToLogin({LoginArguments? arguments}) { - pushAndPop(AppRoutes.login, arguments: arguments); + popAndPush(AppRoutes.login, arguments: arguments); } @override @@ -149,7 +149,7 @@ class HomeController extends BaseController { authorizationIsolateInterceptors.setTokenAndAuthorityOidc( newToken: storedTokenOidcSuccess.tokenOidc.toToken(), newConfig: storedTokenOidcSuccess.oidcConfiguration); - pushAndPop(AppRoutes.session, arguments: _dynamicUrlInterceptors.baseUrl); + popAndPush(AppRoutes.session, arguments: _dynamicUrlInterceptors.baseUrl); } void _goToSessionWithBasicAuth(GetCredentialViewState credentialViewState) { @@ -163,6 +163,6 @@ class HomeController extends BaseController { credentialViewState.userName.value, credentialViewState.password.value, ); - pushAndPop(AppRoutes.session, arguments: _dynamicUrlInterceptors.baseUrl); + popAndPush(AppRoutes.session, arguments: _dynamicUrlInterceptors.baseUrl); } } \ No newline at end of file diff --git a/lib/features/login/presentation/login_controller.dart b/lib/features/login/presentation/login_controller.dart index 6c8f0918b..747e66551 100644 --- a/lib/features/login/presentation/login_controller.dart +++ b/lib/features/login/presentation/login_controller.dart @@ -302,7 +302,7 @@ class LoginController extends BaseController { authorizationIsolateInterceptors.setTokenAndAuthorityOidc( newToken: success.tokenOIDC.toToken(), newConfig: success.configuration); - pushAndPop(AppRoutes.session, arguments: _dynamicUrlInterceptors.baseUrl); + popAndPush(AppRoutes.session, arguments: _dynamicUrlInterceptors.baseUrl); } void _loginAction({Uri? baseUrl, UserName? userName, Password? password}) { @@ -318,7 +318,7 @@ class LoginController extends BaseController { _dynamicUrlInterceptors.changeBaseUrl(_getBaseUrl().toString()); authorizationInterceptors.setBasicAuthorization(_userNameText, _passwordText); authorizationIsolateInterceptors.setBasicAuthorization(_userNameText, _passwordText); - pushAndPop(AppRoutes.session, arguments: _dynamicUrlInterceptors.baseUrl); + popAndPush(AppRoutes.session, arguments: _dynamicUrlInterceptors.baseUrl); } void formatUrl(String url) { diff --git a/lib/features/mailbox/presentation/mailbox_controller.dart b/lib/features/mailbox/presentation/mailbox_controller.dart index a937dc01a..a6281bcf9 100644 --- a/lib/features/mailbox/presentation/mailbox_controller.dart +++ b/lib/features/mailbox/presentation/mailbox_controller.dart @@ -435,7 +435,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM _clearNavigationRouter(); } else { _clearNavigationRouter(); - pushAndPop(AppRoutes.unknownRoutePage); + popAndPush(AppRoutes.unknownRoutePage); } } diff --git a/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart b/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart index f901addb3..77bc5ad5b 100644 --- a/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart +++ b/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart @@ -214,7 +214,7 @@ class ManageAccountDashBoardController extends ReloadableController { } void goToSettings() { - pushAndPop(AppRoutes.settings, + popAndPush(AppRoutes.settings, arguments: ManageAccountArguments(sessionCurrent)); } diff --git a/lib/features/session/presentation/session_controller.dart b/lib/features/session/presentation/session_controller.dart index 4986f3e46..9bbe54dc0 100644 --- a/lib/features/session/presentation/session_controller.dart +++ b/lib/features/session/presentation/session_controller.dart @@ -83,7 +83,7 @@ class SessionController extends ReloadableController { @override void handleReloaded(Session session) { - pushAndPop( + popAndPush( RouteUtils.generateNavigationRoute(AppRoutes.dashboard, NavigationRouter()), arguments: session); } @@ -134,7 +134,7 @@ class SessionController extends ReloadableController { log('SessionController::_goToMailboxDashBoard():apiUrl: $apiUrl'); if (apiUrl.isNotEmpty) { _dynamicUrlInterceptors.changeBaseUrl(apiUrl); - pushAndPop( + popAndPush( RouteUtils.generateNavigationRoute(AppRoutes.dashboard, NavigationRouter()), arguments: session); } else { diff --git a/lib/features/thread/presentation/thread_controller.dart b/lib/features/thread/presentation/thread_controller.dart index 4e350e24d..5cc26b2de 100644 --- a/lib/features/thread/presentation/thread_controller.dart +++ b/lib/features/thread/presentation/thread_controller.dart @@ -180,7 +180,7 @@ class ThreadController extends BaseController with EmailActionController { } else if (failure is GetEmailByIdFailure) { openingEmail.value = false; _navigationRouter = null; - pushAndPop(AppRoutes.unknownRoutePage); + popAndPush(AppRoutes.unknownRoutePage); } } diff --git a/lib/main/routes/route_navigation.dart b/lib/main/routes/route_navigation.dart index 2bfee5a65..005bd8fd5 100644 --- a/lib/main/routes/route_navigation.dart +++ b/lib/main/routes/route_navigation.dart @@ -10,6 +10,10 @@ Future pushAndPop(String routeName, {dynamic arguments}) async { return Get.offNamed(routeName, arguments: arguments); } +Future popAndPush(String routeName, {dynamic arguments}) async { + return Get.offAndToNamed(routeName, arguments: arguments); +} + Future pushAndPopAll(String routeName, {dynamic arguments}) async { return Get.offAllNamed(routeName, arguments: arguments); }