TF-297 Fix can not back mailbox dashboard when reload page manage account

This commit is contained in:
dab246
2022-07-08 15:24:01 +07:00
committed by Dat H. Pham
parent 915498a890
commit 8a3c9f5e67
5 changed files with 17 additions and 7 deletions
@@ -114,10 +114,15 @@ class ManageAccountDashBoardController extends ReloadableController {
arguments: ManageAccountArguments(sessionCurrent)); arguments: ManageAccountArguments(sessionCurrent));
} }
void backToMailboxDashBoard() { void backToMailboxDashBoard(BuildContext context) {
if (currentContext != null && !_responsiveUtils.isDesktop(currentContext!)) { if (!_responsiveUtils.isDesktop(context)) {
closeMenuDrawer(); closeMenuDrawer();
} }
popBack(); if (canBack(context)) {
popBack();
} else {
log('ManageAccountDashBoardController::backToMailboxDashBoard(): canBack: FALSE');
pushAndPopAll(AppRoutes.MAILBOX_DASHBOARD, arguments: sessionCurrent);
}
} }
} }
@@ -49,7 +49,7 @@ class ManageAccountDashBoardView extends GetWidget<ManageAccountDashBoardControl
..setSloganTextAlign(TextAlign.center) ..setSloganTextAlign(TextAlign.center)
..setSloganTextStyle(const TextStyle(color: Colors.black, fontSize: 20, fontWeight: FontWeight.bold)) ..setSloganTextStyle(const TextStyle(color: Colors.black, fontSize: 20, fontWeight: FontWeight.bold))
..setSizeLogo(24) ..setSizeLogo(24)
..addOnTapCallback(() => controller.backToMailboxDashBoard()) ..addOnTapCallback(() => controller.backToMailboxDashBoard(context))
..setLogo(_imagePaths.icLogoTMail)) ..setLogo(_imagePaths.icLogoTMail))
.build(), .build(),
Obx(() { Obx(() {
@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:tmail_ui_user/features/base/base_controller.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'; 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); dashBoardController.selectAccountMenuItem(newAccountMenuItem);
} }
void backToMailboxDashBoard() { void backToMailboxDashBoard(BuildContext context) {
dashBoardController.backToMailboxDashBoard(); dashBoardController.backToMailboxDashBoard(context);
} }
} }
@@ -68,7 +68,7 @@ class ManageAccountMenuView extends GetWidget<ManageAccountMenuController> {
..radiusSplash(10) ..radiusSplash(10)
..padding(const EdgeInsets.symmetric(vertical: 10)) ..padding(const EdgeInsets.symmetric(vertical: 10))
..textStyle(const TextStyle(fontSize: 15, color: AppColor.colorTextButton, fontWeight: FontWeight.normal)) ..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)) ..text(AppLocalizations.of(context).back, isVertical: false))
.build()), .build()),
Padding( Padding(
+4
View File
@@ -18,6 +18,10 @@ void popBack({dynamic result}) {
Get.back(result: result); Get.back(result: result);
} }
bool canBack(BuildContext context) {
return Navigator.of(context).canPop();
}
BuildContext? get currentContext => Get.context; BuildContext? get currentContext => Get.context;
BuildContext? get currentOverlayContext => Get.overlayContext; BuildContext? get currentOverlayContext => Get.overlayContext;