TF-3766 Remove MailboxDashboardController dependency in PopupContextMenuActionMixin
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -7,7 +7,6 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:pointer_interceptor/pointer_interceptor.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_dialog_view.dart';
|
||||||
import 'package:tmail_ui_user/features/base/widget/context_menu/context_menu_item_action.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/localizations/app_localizations.dart';
|
||||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||||
|
|
||||||
@@ -28,9 +27,6 @@ mixin PopupContextMenuActionMixin {
|
|||||||
required OnContextMenuActionClick onContextMenuActionClick,
|
required OnContextMenuActionClick onContextMenuActionClick,
|
||||||
Key? key,
|
Key? key,
|
||||||
}) async {
|
}) async {
|
||||||
if (PlatformInfo.isWeb) {
|
|
||||||
getBinding<MailboxDashBoardController>()?.isContextMenuOpened.value = true;
|
|
||||||
}
|
|
||||||
return await showModalBottomSheet(
|
return await showModalBottomSheet(
|
||||||
context: context,
|
context: context,
|
||||||
showDragHandle: true,
|
showDragHandle: true,
|
||||||
@@ -57,24 +53,17 @@ mixin PopupContextMenuActionMixin {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
).whenComplete(() {
|
);
|
||||||
if (PlatformInfo.isWeb) {
|
|
||||||
getBinding<MailboxDashBoardController>()?.isContextMenuOpened.value = false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> openPopupMenuAction(
|
Future<void> openPopupMenuAction(
|
||||||
BuildContext context,
|
BuildContext context,
|
||||||
RelativeRect? position,
|
RelativeRect position,
|
||||||
List<PopupMenuEntry> popupMenuItems,
|
List<PopupMenuEntry> popupMenuItems,
|
||||||
) async {
|
) async {
|
||||||
if (PlatformInfo.isWeb) {
|
|
||||||
getBinding<MailboxDashBoardController>()?.isPopupMenuOpened.value = true;
|
|
||||||
}
|
|
||||||
return await showMenu(
|
return await showMenu(
|
||||||
context: context,
|
context: context,
|
||||||
position: position ?? const RelativeRect.fromLTRB(16, 40, 16, 16),
|
position: position,
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
surfaceTintColor: Colors.white,
|
surfaceTintColor: Colors.white,
|
||||||
menuPadding: const EdgeInsets.symmetric(vertical: 8),
|
menuPadding: const EdgeInsets.symmetric(vertical: 8),
|
||||||
@@ -84,11 +73,7 @@ mixin PopupContextMenuActionMixin {
|
|||||||
),
|
),
|
||||||
constraints: const BoxConstraints(maxWidth: 300, minWidth: 178),
|
constraints: const BoxConstraints(maxWidth: 300, minWidth: 178),
|
||||||
items: popupMenuItems,
|
items: popupMenuItems,
|
||||||
).whenComplete(() {
|
);
|
||||||
if (PlatformInfo.isWeb) {
|
|
||||||
getBinding<MailboxDashBoardController>()?.isPopupMenuOpened.value = false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget buildCancelButton(BuildContext context) {
|
Widget buildCancelButton(BuildContext context) {
|
||||||
|
|||||||
@@ -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/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/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/email/presentation/widgets/view_entire_message_with_message_clipped_widget.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_open_context_menu_extension.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/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/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/features/manage_account/presentation/vacation/widgets/vacation_notification_message_widget.dart';
|
||||||
@@ -561,7 +562,7 @@ class EmailView extends GetWidget<SingleEmailController> {
|
|||||||
))
|
))
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
controller.openBottomSheetContextMenuAction(
|
controller.mailboxDashBoardController.openBottomSheetContextMenu(
|
||||||
context: context,
|
context: context,
|
||||||
itemActions: contextMenuActions,
|
itemActions: contextMenuActions,
|
||||||
onContextMenuActionClick: (menuAction) {
|
onContextMenuActionClick: (menuAction) {
|
||||||
@@ -595,7 +596,11 @@ class EmailView extends GetWidget<SingleEmailController> {
|
|||||||
);
|
);
|
||||||
}).toList();
|
}).toList();
|
||||||
|
|
||||||
controller.openPopupMenuAction(context, position, popupMenuItems);
|
controller.mailboxDashBoardController.openPopupMenu(
|
||||||
|
context,
|
||||||
|
position,
|
||||||
|
popupMenuItems,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -8,6 +8,7 @@ import 'package:tmail_ui_user/features/base/widget/popup_menu/popup_menu_item_ac
|
|||||||
import 'package:tmail_ui_user/features/home/domain/extensions/session_extensions.dart';
|
import 'package:tmail_ui_user/features/home/domain/extensions/session_extensions.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_controller.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/utils/mailbox_utils.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/utils/mailbox_utils.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_open_context_menu_extension.dart';
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||||
|
|
||||||
@@ -102,6 +103,10 @@ extension HandleMailboxActionExtension on MailboxController {
|
|||||||
);
|
);
|
||||||
}).toList();
|
}).toList();
|
||||||
|
|
||||||
return openPopupMenuAction(context, position, popupMenuItems);
|
return mailboxDashBoardController.openPopupMenu(
|
||||||
|
context,
|
||||||
|
position,
|
||||||
|
popupMenuItems,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+46
@@ -0,0 +1,46 @@
|
|||||||
|
import 'package:core/utils/platform_info.dart';
|
||||||
|
import 'package:flutter/material.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';
|
||||||
|
|
||||||
|
extension HandleOpenContextMenuExtension on MailboxDashBoardController {
|
||||||
|
Future<void> openBottomSheetContextMenu({
|
||||||
|
required BuildContext context,
|
||||||
|
required List<ContextMenuItemAction> itemActions,
|
||||||
|
required OnContextMenuActionClick onContextMenuActionClick,
|
||||||
|
Key? key,
|
||||||
|
}) {
|
||||||
|
if (PlatformInfo.isWeb) {
|
||||||
|
isContextMenuOpened.value = true;
|
||||||
|
}
|
||||||
|
return openBottomSheetContextMenuAction(
|
||||||
|
context: context,
|
||||||
|
itemActions: itemActions,
|
||||||
|
onContextMenuActionClick: onContextMenuActionClick,
|
||||||
|
key: key,
|
||||||
|
).whenComplete(() {
|
||||||
|
if (PlatformInfo.isWeb) {
|
||||||
|
isContextMenuOpened.value = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> openPopupMenu(
|
||||||
|
BuildContext context,
|
||||||
|
RelativeRect position,
|
||||||
|
List<PopupMenuEntry> popupMenuItems,
|
||||||
|
) {
|
||||||
|
if (PlatformInfo.isWeb) {
|
||||||
|
isPopupMenuOpened.value = true;
|
||||||
|
}
|
||||||
|
return openPopupMenuAction(
|
||||||
|
context,
|
||||||
|
position,
|
||||||
|
popupMenuItems,
|
||||||
|
).whenComplete(() {
|
||||||
|
if (PlatformInfo.isWeb) {
|
||||||
|
isPopupMenuOpened.value = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -17,6 +17,7 @@ import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_view_web.dar
|
|||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/base_mailbox_dashboard_view.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/base_mailbox_dashboard_view.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_drawer_changed_extension.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_drawer_changed_extension.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_open_context_menu_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_profile_setting_action_type_click_extension.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_profile_setting_action_type_click_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/open_and_close_composer_extension.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/open_and_close_composer_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart';
|
||||||
@@ -464,7 +465,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
|||||||
);
|
);
|
||||||
}).toList();
|
}).toList();
|
||||||
|
|
||||||
controller.openPopupMenuAction(context, buttonPosition, popupMenuItems);
|
controller.openPopupMenu(context, buttonPosition, popupMenuItems);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _onDeleteFilterMessageOptionAction() {
|
void _onDeleteFilterMessageOptionAction() {
|
||||||
@@ -725,7 +726,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
|||||||
);
|
);
|
||||||
}).toList();
|
}).toList();
|
||||||
|
|
||||||
controller.openPopupMenuAction(context, position, popupMenuItems);
|
controller.openPopupMenu(context, position, popupMenuItems);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _openPopupMenuSortFilter(BuildContext context, RelativeRect position) {
|
void _openPopupMenuSortFilter(BuildContext context, RelativeRect position) {
|
||||||
@@ -747,6 +748,6 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
|||||||
);
|
);
|
||||||
}).toList();
|
}).toList();
|
||||||
|
|
||||||
controller.openPopupMenuAction(context, position, popupMenuItems);
|
controller.openPopupMenu(context, position, popupMenuItems);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -19,6 +19,7 @@ import 'package:tmail_ui_user/features/mailbox/presentation/mixin/mailbox_widget
|
|||||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/context_item_mailbox_action.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/model/context_item_mailbox_action.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/utils/mailbox_utils.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/utils/mailbox_utils.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_open_context_menu_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/search/mailbox/presentation/search_mailbox_controller.dart';
|
import 'package:tmail_ui_user/features/search/mailbox/presentation/search_mailbox_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/search/mailbox/presentation/widgets/mailbox_searched_item_builder.dart';
|
import 'package:tmail_ui_user/features/search/mailbox/presentation/widgets/mailbox_searched_item_builder.dart';
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
@@ -282,7 +283,7 @@ class SearchMailboxView extends GetWidget<SearchMailboxController>
|
|||||||
|
|
||||||
controller.clearSearchInputFocus();
|
controller.clearSearchInputFocus();
|
||||||
|
|
||||||
return controller.openBottomSheetContextMenuAction(
|
return controller.dashboardController.openBottomSheetContextMenu(
|
||||||
context: context,
|
context: context,
|
||||||
itemActions: contextMenuActions,
|
itemActions: contextMenuActions,
|
||||||
onContextMenuActionClick: (menuAction) {
|
onContextMenuActionClick: (menuAction) {
|
||||||
@@ -325,7 +326,11 @@ class SearchMailboxView extends GetWidget<SearchMailboxController>
|
|||||||
);
|
);
|
||||||
}).toList();
|
}).toList();
|
||||||
|
|
||||||
return controller.openPopupMenuAction(context, position, popupMenuItems);
|
return controller.dashboardController.openPopupMenu(
|
||||||
|
context,
|
||||||
|
position,
|
||||||
|
popupMenuItems,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+5
-1
@@ -34,6 +34,10 @@ extension HandleOpenContextMenuFilterEmailActionExtension on ThreadController {
|
|||||||
);
|
);
|
||||||
}).toList();
|
}).toList();
|
||||||
|
|
||||||
openPopupMenuAction(context, position, popupMenuItems);
|
mailboxDashBoardController.openPopupMenuAction(
|
||||||
|
context,
|
||||||
|
position,
|
||||||
|
popupMenuItems,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import 'package:tmail_ui_user/features/email/presentation/model/context_item_ema
|
|||||||
import 'package:tmail_ui_user/features/email/presentation/model/popup_menu_item_email_action.dart';
|
import 'package:tmail_ui_user/features/email/presentation/model/popup_menu_item_email_action.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/state/clear_mailbox_state.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/state/clear_mailbox_state.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read_state.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read_state.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_open_context_menu_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/open_and_close_composer_extension.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/open_and_close_composer_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/recover_deleted_message_loading_banner_widget.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/recover_deleted_message_loading_banner_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/extensions/vacation_response_extension.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/extensions/vacation_response_extension.dart';
|
||||||
@@ -639,7 +640,7 @@ class ThreadView extends GetWidget<ThreadController>
|
|||||||
))
|
))
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
return controller.openBottomSheetContextMenuAction(
|
return controller.mailboxDashBoardController.openBottomSheetContextMenu(
|
||||||
context: context,
|
context: context,
|
||||||
itemActions: contextMenuActions,
|
itemActions: contextMenuActions,
|
||||||
onContextMenuActionClick: (menuAction) {
|
onContextMenuActionClick: (menuAction) {
|
||||||
@@ -673,7 +674,11 @@ class ThreadView extends GetWidget<ThreadController>
|
|||||||
);
|
);
|
||||||
}).toList();
|
}).toList();
|
||||||
|
|
||||||
return controller.openPopupMenuAction(context, position, popupMenuItems);
|
return controller.mailboxDashBoardController.openPopupMenuAction(
|
||||||
|
context,
|
||||||
|
position,
|
||||||
|
popupMenuItems,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user