From 440ea10aff0c281d931e578ac50cb4b27526873f Mon Sep 17 00:00:00 2001 From: dab246 Date: Tue, 15 Apr 2025 16:40:48 +0700 Subject: [PATCH] Fix default browser warning dialog is auto shown when get 401 error Signed-off-by: dab246 --- lib/features/base/base_controller.dart | 1 + .../controller/mailbox_dashboard_controller.dart | 6 +++++- lib/main/utils/twake_app_manager.dart | 5 +++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/features/base/base_controller.dart b/lib/features/base/base_controller.dart index c92ab81b2..b7f2b6584 100644 --- a/lib/features/base/base_controller.dart +++ b/lib/features/base/base_controller.dart @@ -191,6 +191,7 @@ abstract class BaseController extends GetxController } Future _executeBeforeReconnectAndLogOut() async { + twakeAppManager.setExecutingBeforeReconnect(true); await executeBeforeReconnect(); clearDataAndGoToLoginPage(); } diff --git a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart index 5193487bf..d12ed60dc 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -330,6 +330,7 @@ class MailboxDashBoardController extends ReloadableController void onReady() { if (PlatformInfo.isWeb) { listSearchFilterScrollController = ScrollController(); + twakeAppManager.setExecutingBeforeReconnect(false); } if (PlatformInfo.isIOS) { _registerPendingCurrentEmailIdInNotification(); @@ -499,7 +500,10 @@ class MailboxDashBoardController extends ReloadableController @override Future onBeforeUnloadBrowserListener(html.Event event) async { - if (event is html.BeforeUnloadEvent && twakeAppManager.hasComposer) { + log('MailboxDashBoardController::onBeforeUnloadBrowserListener:event = ${event.runtimeType} | hasComposer = ${twakeAppManager.hasComposer} | isExecutingBeforeReconnect = ${twakeAppManager.isExecutingBeforeReconnect}'); + if (event is html.BeforeUnloadEvent && + twakeAppManager.hasComposer && + !twakeAppManager.isExecutingBeforeReconnect) { event.preventDefault(); } } diff --git a/lib/main/utils/twake_app_manager.dart b/lib/main/utils/twake_app_manager.dart index d10cfc74c..fc7dff513 100644 --- a/lib/main/utils/twake_app_manager.dart +++ b/lib/main/utils/twake_app_manager.dart @@ -1,8 +1,13 @@ class TwakeAppManager { bool _hasComposer = false; + bool _isExecutingBeforeReconnect = false; void setHasComposer(bool value) => _hasComposer = value; bool get hasComposer => _hasComposer; + + void setExecutingBeforeReconnect(bool value) => _isExecutingBeforeReconnect = value; + + bool get isExecutingBeforeReconnect => _isExecutingBeforeReconnect; }