TF-3766 Make it easy to close context menu when open in email view
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -7,6 +7,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:pointer_interceptor/pointer_interceptor.dart';
|
||||
import 'package:tmail_ui_user/features/base/widget/context_menu/context_menu_dialog_view.dart';
|
||||
import 'package:tmail_ui_user/features/base/widget/context_menu/context_menu_item_action.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||
|
||||
@@ -27,6 +28,9 @@ mixin PopupContextMenuActionMixin {
|
||||
required OnContextMenuActionClick onContextMenuActionClick,
|
||||
Key? key,
|
||||
}) async {
|
||||
if (PlatformInfo.isWeb) {
|
||||
getBinding<MailboxDashBoardController>()?.isContextMenuOpened.value = true;
|
||||
}
|
||||
await showModalBottomSheet(
|
||||
context: context,
|
||||
showDragHandle: true,
|
||||
@@ -53,7 +57,11 @@ mixin PopupContextMenuActionMixin {
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
).whenComplete(() {
|
||||
if (PlatformInfo.isWeb) {
|
||||
getBinding<MailboxDashBoardController>()?.isContextMenuOpened.value = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void openPopupMenuAction(
|
||||
|
||||
@@ -33,6 +33,7 @@ import 'package:tmail_ui_user/features/email/presentation/widgets/email_view_loa
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/information_sender_and_receiver_builder.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/mail_unsubscribed_banner.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/view_entire_message_with_message_clipped_widget.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/verify_display_overlay_view_on_iframe_extension.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/extensions/vacation_response_extension.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/vacation/widgets/vacation_notification_message_widget.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
@@ -412,10 +413,7 @@ class EmailView extends GetWidget<SingleEmailController> {
|
||||
contentPadding: 0,
|
||||
useDefaultFont: true,
|
||||
),
|
||||
if (controller.mailboxDashBoardController.isAttachmentDraggableAppActive ||
|
||||
controller.mailboxDashBoardController.isLocalFileDraggableAppActive ||
|
||||
controller.mailboxDashBoardController.isAppGridDialogDisplayed.isTrue ||
|
||||
controller.mailboxDashBoardController.isDrawerOpened.isTrue)
|
||||
if (controller.mailboxDashBoardController.isDisplayedOverlayViewOnIFrame)
|
||||
PointerInterceptor(
|
||||
child: SizedBox(
|
||||
width: constraints.maxWidth,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:core/presentation/extensions/color_extension.dart';
|
||||
import 'package:core/presentation/views/list/sliver_grid_delegate_fixed_height.dart';
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:core/utils/platform_info.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_controller.dart';
|
||||
@@ -10,7 +11,10 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/linagora_ecosyst
|
||||
extension OpenAppGridExtension on MailboxController {
|
||||
void openAppGrid(List<AppLinagoraEcosystem> linagoraApps) {
|
||||
log('OpenAppGridExtension::openAppGrid: length of linagoraApps = ${linagoraApps.length}');
|
||||
mailboxDashBoardController.isAppGridDialogDisplayed.value = true;
|
||||
if (PlatformInfo.isWeb) {
|
||||
mailboxDashBoardController.isAppGridDialogDisplayed.value = true;
|
||||
}
|
||||
|
||||
Get.dialog(
|
||||
Center(
|
||||
child: Dialog(
|
||||
@@ -56,8 +60,11 @@ extension OpenAppGridExtension on MailboxController {
|
||||
),
|
||||
),
|
||||
barrierColor: AppColor.blackAlpha20,
|
||||
).whenComplete(() =>
|
||||
mailboxDashBoardController.isAppGridDialogDisplayed.value = false);
|
||||
).whenComplete(() {
|
||||
if (PlatformInfo.isWeb) {
|
||||
mailboxDashBoardController.isAppGridDialogDisplayed.value = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> _handleOpenApp(AppLinagoraEcosystem app) async {
|
||||
|
||||
+1
@@ -265,6 +265,7 @@ class MailboxDashBoardController extends ReloadableController
|
||||
final isSenderImportantFlagEnabled = RxBool(true);
|
||||
final isAppGridDialogDisplayed = RxBool(false);
|
||||
final isDrawerOpened = RxBool(false);
|
||||
final isContextMenuOpened = RxBool(false);
|
||||
|
||||
Session? sessionCurrent;
|
||||
Map<Role, MailboxId> mapDefaultMailboxIdByRole = {};
|
||||
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
import 'package:get/get.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||
|
||||
extension VerifyDisplayOverlayViewOnIframeExtension
|
||||
on MailboxDashBoardController {
|
||||
bool get isDisplayedOverlayViewOnIFrame {
|
||||
return isAttachmentDraggableAppActive ||
|
||||
isLocalFileDraggableAppActive ||
|
||||
isAppGridDialogDisplayed.isTrue ||
|
||||
isDrawerOpened.isTrue ||
|
||||
isContextMenuOpened.isTrue;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user