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 f5cf7d507..6647ddb91 100644 --- a/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart +++ b/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart @@ -114,10 +114,15 @@ class ManageAccountDashBoardController extends ReloadableController { arguments: ManageAccountArguments(sessionCurrent)); } - void backToMailboxDashBoard() { - if (currentContext != null && !_responsiveUtils.isDesktop(currentContext!)) { + void backToMailboxDashBoard(BuildContext context) { + if (!_responsiveUtils.isDesktop(context)) { closeMenuDrawer(); } - popBack(); + if (canBack(context)) { + popBack(); + } else { + log('ManageAccountDashBoardController::backToMailboxDashBoard(): canBack: FALSE'); + pushAndPopAll(AppRoutes.MAILBOX_DASHBOARD, arguments: sessionCurrent); + } } } \ No newline at end of file diff --git a/lib/features/manage_account/presentation/manage_account_dashboard_view.dart b/lib/features/manage_account/presentation/manage_account_dashboard_view.dart index 3e84c90ce..cefc1b747 100644 --- a/lib/features/manage_account/presentation/manage_account_dashboard_view.dart +++ b/lib/features/manage_account/presentation/manage_account_dashboard_view.dart @@ -49,7 +49,7 @@ class ManageAccountDashBoardView extends GetWidget controller.backToMailboxDashBoard()) + ..addOnTapCallback(() => controller.backToMailboxDashBoard(context)) ..setLogo(_imagePaths.icLogoTMail)) .build(), Obx(() { diff --git a/lib/features/manage_account/presentation/menu/manage_account_menu_controller.dart b/lib/features/manage_account/presentation/menu/manage_account_menu_controller.dart index 64d036d76..04d69573c 100644 --- a/lib/features/manage_account/presentation/menu/manage_account_menu_controller.dart +++ b/lib/features/manage_account/presentation/menu/manage_account_menu_controller.dart @@ -1,4 +1,5 @@ +import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:tmail_ui_user/features/base/base_controller.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/manage_account_dashboard_controller.dart'; @@ -25,7 +26,7 @@ class ManageAccountMenuController extends BaseController { dashBoardController.selectAccountMenuItem(newAccountMenuItem); } - void backToMailboxDashBoard() { - dashBoardController.backToMailboxDashBoard(); + void backToMailboxDashBoard(BuildContext context) { + dashBoardController.backToMailboxDashBoard(context); } } \ No newline at end of file diff --git a/lib/features/manage_account/presentation/menu/manage_account_menu_view.dart b/lib/features/manage_account/presentation/menu/manage_account_menu_view.dart index 0ddbba77d..d8c4a25fe 100644 --- a/lib/features/manage_account/presentation/menu/manage_account_menu_view.dart +++ b/lib/features/manage_account/presentation/menu/manage_account_menu_view.dart @@ -68,7 +68,7 @@ class ManageAccountMenuView extends GetWidget { ..radiusSplash(10) ..padding(const EdgeInsets.symmetric(vertical: 10)) ..textStyle(const TextStyle(fontSize: 15, color: AppColor.colorTextButton, fontWeight: FontWeight.normal)) - ..onPressActionClick(() => controller.backToMailboxDashBoard()) + ..onPressActionClick(() => controller.backToMailboxDashBoard(context)) ..text(AppLocalizations.of(context).back, isVertical: false)) .build()), Padding( diff --git a/lib/main/routes/route_navigation.dart b/lib/main/routes/route_navigation.dart index b2a2c742a..b875d3d6b 100644 --- a/lib/main/routes/route_navigation.dart +++ b/lib/main/routes/route_navigation.dart @@ -18,6 +18,10 @@ void popBack({dynamic result}) { Get.back(result: result); } +bool canBack(BuildContext context) { + return Navigator.of(context).canPop(); +} + BuildContext? get currentContext => Get.context; BuildContext? get currentOverlayContext => Get.overlayContext; \ No newline at end of file