Fix a gray screen appear in browser tablet responsive

This commit is contained in:
dab246
2025-09-26 09:42:57 +07:00
committed by Dat H. Pham
parent d4ec68151f
commit 7674353735
8 changed files with 15 additions and 239 deletions
@@ -908,13 +908,9 @@ class MailboxDashBoardController extends ReloadableController
selectedEmail.value = null;
}
void openEmailDetailedView(PresentationEmail presentationEmail, {bool singleEmail = false}) {
void openEmailDetailedView(PresentationEmail presentationEmail) {
setSelectedEmail(presentationEmail);
if (singleEmail) {
dispatchRoute(DashboardRoutes.emailDetailed);
} else {
dispatchRoute(DashboardRoutes.threadDetailed);
}
dispatchRoute(DashboardRoutes.threadDetailed);
if (PlatformInfo.isWeb && presentationEmail.routeWeb != null) {
RouteUtils.replaceBrowserHistory(
title: 'Email-${presentationEmail.id?.id.value ?? ''}',
@@ -947,9 +943,7 @@ class MailboxDashBoardController extends ReloadableController
void handleAdvancedSearchEmail() {
log('MailboxDashBoardController::handleAdvancedSearchEmail:');
if (_searchInsideEmailDetailedViewIsActive()) {
_closeEmailDetailedView();
} else if (_searchInsideThreadDetailViewIsActive()) {
if (_searchInsideThreadDetailViewIsActive()) {
_closeEmailDetailedView();
}
_unSelectedMailbox();
@@ -962,9 +956,7 @@ class MailboxDashBoardController extends ReloadableController
void handleClearAdvancedSearchFilterEmail() {
log('MailboxDashBoardController::handleClearAdvancedSearchFilterEmail:');
clearFilterMessageOption();
if (_searchInsideEmailDetailedViewIsActive()) {
_closeEmailDetailedView();
} else if (_searchInsideThreadDetailViewIsActive()) {
if (_searchInsideThreadDetailViewIsActive()) {
_closeEmailDetailedView();
}
_unSelectedMailbox();
@@ -977,9 +969,7 @@ class MailboxDashBoardController extends ReloadableController
final isMailAddress = EmailUtils.isEmailAddressValid(queryString);
log('MailboxDashBoardController::searchEmailByQueryString():QueryString = $queryString | isMailAddress = $isMailAddress');
clearFilterMessageOption();
if (_searchInsideEmailDetailedViewIsActive()) {
_closeEmailDetailedView();
} else if (_searchInsideThreadDetailViewIsActive()) {
if (_searchInsideThreadDetailViewIsActive()) {
_closeEmailDetailedView();
}
_unSelectedMailbox();
@@ -1002,13 +992,6 @@ class MailboxDashBoardController extends ReloadableController
dispatchAction(StartSearchEmailAction());
}
bool _searchInsideEmailDetailedViewIsActive() {
return PlatformInfo.isWeb
&& currentContext != null
&& responsiveUtils.isDesktop(currentContext!)
&& dashboardRoute.value == DashboardRoutes.emailDetailed;
}
bool _searchInsideThreadDetailViewIsActive() {
return PlatformInfo.isWeb
&& currentContext != null
@@ -2824,10 +2807,6 @@ class MailboxDashBoardController extends ReloadableController
void redirectToInboxAction() {
log('MailboxDashBoardController::redirectToInboxAction:');
if (dashboardRoute.value == DashboardRoutes.emailDetailed) {
dispatchEmailUIAction(CloseEmailDetailedViewToRedirectToTheInboxAction());
}
final inboxId = getMailboxIdByRole(PresentationMailbox.roleInbox);
if (inboxId == null) return;
@@ -2908,9 +2887,7 @@ class MailboxDashBoardController extends ReloadableController
FocusManager.instance.primaryFocus?.unfocus();
clearFilterMessageOption();
searchController.clearFilterSuggestion();
if (_searchInsideEmailDetailedViewIsActive()) {
_closeEmailDetailedView();
} else if (_searchInsideThreadDetailViewIsActive()) {
if (_searchInsideThreadDetailViewIsActive()) {
_closeEmailDetailedView();
}
_unSelectedMailbox();
@@ -2992,18 +2969,6 @@ class MailboxDashBoardController extends ReloadableController
bool _navigateToScreen() {
log('MailboxDashBoardController::_navigateToScreen: dashboardRoute: $dashboardRoute');
switch(dashboardRoute.value) {
case DashboardRoutes.emailDetailed:
if (PlatformInfo.isMobile) {
if (currentContext != null && canBack(currentContext!)) {
return false;
} else {
dispatchEmailUIAction(CloseEmailDetailedViewAction());
return true;
}
} else {
dispatchEmailUIAction(CloseEmailDetailedViewAction());
return true;
}
case DashboardRoutes.thread:
if (PlatformInfo.isMobile) {
if (currentContext != null && canBack(currentContext!)) {
@@ -3,7 +3,6 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:focus_detector_v2/focus_detector_v2.dart';
import 'package:get/get.dart';
import 'package:tmail_ui_user/features/email/presentation/email_view.dart';
import 'package:tmail_ui_user/features/email/presentation/widgets/email_view_empty_widget.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/base_mailbox_dashboard_view.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart';
@@ -43,15 +42,6 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
mobile: buildScaffoldHaveDrawer(body: ThreadView()),
);
case DashboardRoutes.emailDetailed:
return controller.searchController.isSearchEmailRunning
? const EmailView()
: buildResponsiveWithDrawer(
left: ThreadView(),
right: const EmailView(),
mobile: const EmailView(),
);
case DashboardRoutes.threadDetailed:
return controller.searchController.isSearchEmailRunning
? const ThreadDetailView()
@@ -12,8 +12,8 @@ import 'package:tmail_ui_user/features/base/widget/popup_menu/popup_menu_item_ac
import 'package:tmail_ui_user/features/base/widget/report_message_banner.dart';
import 'package:tmail_ui_user/features/base/widget/scrollbar_list_view.dart';
import 'package:tmail_ui_user/features/composer/presentation/view/web/composer_overlay_view.dart';
import 'package:tmail_ui_user/features/email/presentation/email_view.dart';
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
import 'package:tmail_ui_user/features/email/presentation/widgets/email_view_empty_widget.dart';
import 'package:tmail_ui_user/features/home/domain/extensions/session_extensions.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_view_web.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/spam_report_state.dart';
@@ -279,8 +279,6 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
switch(controller.dashboardRoute.value) {
case DashboardRoutes.thread:
return _buildThreadViewForWebDesktop(context);
case DashboardRoutes.emailDetailed:
return const EmailView();
case DashboardRoutes.threadDetailed:
return const ThreadDetailView();
default:
@@ -307,11 +305,11 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
);
default:
return controller.searchController.isSearchEmailRunning
? const EmailView()
? const ThreadDetailView()
: buildResponsiveWithDrawer(
left: ThreadView(),
right: const EmailView(),
mobile: const EmailView(),
right: const EmailViewEmptyWidget(),
mobile: ThreadView(),
);
}
}),
@@ -321,8 +319,6 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
return buildScaffoldHaveDrawer(body: ThreadView());
case DashboardRoutes.threadDetailed:
return const ThreadDetailView();
case DashboardRoutes.emailDetailed:
return const EmailView();
case DashboardRoutes.searchEmail:
return SearchEmailView();
default:
@@ -1,7 +1,6 @@
enum DashboardRoutes {
thread,
emailDetailed,
threadDetailed,
searchEmail,
waiting,