From 56a63d2bc9cf0af9f0bcff612706b00709b336a7 Mon Sep 17 00:00:00 2001 From: dab246 Date: Thu, 25 Apr 2024 00:27:52 +0700 Subject: [PATCH] Fix tThe editor background appears gray when the waning dialog appears --- .../presentation/action/email_ui_action.dart | 6 ++++- .../controller/single_email_controller.dart | 7 +++++ .../email/presentation/email_view.dart | 24 +++++++++++++++++ .../mailbox_dashboard_controller.dart | 27 ++++++++++++++++++- lib/main/pages/app_pages.dart | 1 - 5 files changed, 62 insertions(+), 3 deletions(-) diff --git a/lib/features/email/presentation/action/email_ui_action.dart b/lib/features/email/presentation/action/email_ui_action.dart index e7a544590..3a276779b 100644 --- a/lib/features/email/presentation/action/email_ui_action.dart +++ b/lib/features/email/presentation/action/email_ui_action.dart @@ -40,4 +40,8 @@ class PrintEmailAction extends EmailUIAction { @override List get props => [context, userEmail, email]; -} \ No newline at end of file +} + +class HideEmailContentViewAction extends EmailUIAction {} + +class ShowEmailContentViewAction extends EmailUIAction {} \ No newline at end of file diff --git a/lib/features/email/presentation/controller/single_email_controller.dart b/lib/features/email/presentation/controller/single_email_controller.dart index e4d843a99..5911c02d5 100644 --- a/lib/features/email/presentation/controller/single_email_controller.dart +++ b/lib/features/email/presentation/controller/single_email_controller.dart @@ -144,6 +144,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin { final emailLoadedViewState = Rx>(Right(UIState.idle)); final emailUnsubscribe = Rxn(); final attachmentsViewState = RxMap>(); + final isEmailContentHidden = RxBool(false); EmailId? _currentEmailId; Identity? _identitySelected; @@ -289,6 +290,12 @@ class SingleEmailController extends BaseController with AppLoaderMixin { } else if (action is CloseEmailDetailedViewAction) { closeEmailView(context: currentContext); mailboxDashBoardController.clearEmailUIAction(); + } else if (action is HideEmailContentViewAction) { + isEmailContentHidden.value = true; + mailboxDashBoardController.clearEmailUIAction(); + } else if (action is ShowEmailContentViewAction) { + isEmailContentHidden.value = false; + mailboxDashBoardController.clearEmailUIAction(); } }); diff --git a/lib/features/email/presentation/email_view.dart b/lib/features/email/presentation/email_view.dart index 092853e03..49d80ba00 100644 --- a/lib/features/email/presentation/email_view.dart +++ b/lib/features/email/presentation/email_view.dart @@ -427,6 +427,30 @@ class EmailView extends GetWidget { }), ), ); + } else if (PlatformInfo.isIOS + && !controller.responsiveUtils.isScreenWithShortestSide(context)) { + return Obx(() { + if (controller.isEmailContentHidden.isTrue) { + return const SizedBox.shrink(); + } else { + return Padding( + padding: const EdgeInsetsDirectional.symmetric( + vertical: EmailViewStyles.mobileContentVerticalMargin, + horizontal: EmailViewStyles.mobileContentHorizontalMargin + ), + child: LayoutBuilder(builder: (context, constraints) { + return HtmlContentViewer( + contentHtml: allEmailContents, + initialWidth: constraints.maxWidth, + direction: AppUtils.getCurrentDirection(context), + onMailtoDelegateAction: controller.openMailToLink, + onScrollHorizontalEnd: controller.toggleScrollPhysicsPagerView, + onLoadWidthHtmlViewer: controller.emailSupervisorController.updateScrollPhysicPageView, + ); + }) + ); + } + }); } else { return Padding( padding: const EdgeInsetsDirectional.symmetric( 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 20af0cc91..e6002a7af 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -38,6 +38,7 @@ import 'package:tmail_ui_user/features/composer/domain/state/update_email_drafts import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_interactor.dart'; import 'package:tmail_ui_user/features/composer/domain/usecases/send_email_interactor.dart'; import 'package:tmail_ui_user/features/composer/presentation/composer_bindings.dart'; +import 'package:tmail_ui_user/features/composer/presentation/composer_view.dart'; import 'package:tmail_ui_user/features/composer/presentation/extensions/email_action_type_extension.dart'; import 'package:tmail_ui_user/features/composer/presentation/extensions/list_identities_extension.dart'; import 'package:tmail_ui_user/features/composer/presentation/model/compose_action_mode.dart'; @@ -1411,7 +1412,31 @@ class MailboxDashBoardController extends ReloadableController { } else { BackButtonInterceptor.removeByName(AppRoutes.dashboard); - final result = await push(AppRoutes.composer, arguments: argumentsWithIdentity); + bool isTabletPlatform = currentContext != null + && !responsiveUtils.isScreenWithShortestSide(currentContext!); + dynamic result; + + if (isTabletPlatform) { + if (PlatformInfo.isIOS) { + dispatchEmailUIAction(HideEmailContentViewAction()); + } + + result = await Get.to( + () => const ComposerView(), + binding: ComposerBindings(), + opaque: false, + arguments: argumentsWithIdentity); + + if (PlatformInfo.isIOS) { + await Future.delayed( + const Duration(milliseconds: 200), + () => dispatchEmailUIAction(ShowEmailContentViewAction())); + } + } else { + result = await push( + AppRoutes.composer, + arguments: argumentsWithIdentity); + } BackButtonInterceptor.add(_onBackButtonInterceptor, name: AppRoutes.dashboard); diff --git a/lib/main/pages/app_pages.dart b/lib/main/pages/app_pages.dart index e13239bc9..83e23838f 100644 --- a/lib/main/pages/app_pages.dart +++ b/lib/main/pages/app_pages.dart @@ -85,7 +85,6 @@ class AppPages { ...[ GetPage( name: AppRoutes.composer, - opaque: false, page: () => DeferredWidget( composer.loadLibrary, () => composer.ComposerView()),