diff --git a/lib/features/email/presentation/utils/email_action_reactor/email_action_reactor.dart b/lib/features/email/presentation/utils/email_action_reactor/email_action_reactor.dart index a7ccdc167..bf26e6a17 100644 --- a/lib/features/email/presentation/utils/email_action_reactor/email_action_reactor.dart +++ b/lib/features/email/presentation/utils/email_action_reactor/email_action_reactor.dart @@ -45,7 +45,6 @@ import 'package:tmail_ui_user/features/email/domain/usecases/get_email_content_i import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_email_read_interactor.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_star_email_interactor.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/print_email_interactor.dart'; -import 'package:tmail_ui_user/features/email/presentation/extensions/presentation_email_extension.dart'; import 'package:tmail_ui_user/features/email/presentation/model/context_item_email_action.dart'; import 'package:tmail_ui_user/features/email/presentation/model/email_loaded.dart'; import 'package:tmail_ui_user/features/email/presentation/model/email_unsubscribe.dart'; @@ -53,8 +52,8 @@ import 'package:tmail_ui_user/features/email/presentation/model/popup_menu_item_ import 'package:tmail_ui_user/features/email/presentation/utils/email_utils.dart'; import 'package:tmail_ui_user/features/email/presentation/widgets/email_address_bottom_sheet_builder.dart'; import 'package:tmail_ui_user/features/email/presentation/widgets/email_address_dialog_builder.dart'; +import 'package:tmail_ui_user/features/labels/presentation/mixin/label_sub_menu_mixin.dart'; import 'package:tmail_ui_user/features/labels/presentation/widgets/label_item_context_menu.dart'; -import 'package:tmail_ui_user/features/labels/presentation/widgets/label_list_context_menu.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart'; import 'package:tmail_ui_user/features/manage_account/domain/model/create_new_email_rule_filter_request.dart'; import 'package:tmail_ui_user/features/manage_account/domain/usecases/create_new_email_rule_filter_interactor.dart'; @@ -82,7 +81,7 @@ typedef OpenPopupMenuActionGroup = Future Function( PopupMenuActionGroupWidget popupMenuWidget, ); -class EmailActionReactor { +class EmailActionReactor with LabelSubMenuMixin { EmailActionReactor( this._markAsEmailReadInteractor, this._markAsStarEmailInteractor, @@ -575,7 +574,7 @@ class EmailActionReactor { imagePaths, key: '${actionType.name}_action', category: actionType.category, - submenu: _getEmailActionSubmenu( + submenu: buildLabelSubmenuForEmail( actionType: actionType, imagePaths: imagePaths, presentationEmail: presentationEmail, @@ -593,7 +592,7 @@ class EmailActionReactor { actions: popupMenuItemEmailActions, submenuController: submenuController, onActionSelected: (action) { - if (_shouldHandleAction(action.action)) { + if (shouldHandleAction(action.action)) { handleEmailAction(presentationEmail, action.action); } }, @@ -607,36 +606,6 @@ class EmailActionReactor { } } - bool _shouldHandleAction(EmailActionType action) { - if (action != EmailActionType.labelAs) { - return true; - } - - return PlatformInfo.isWebTouchDevice || PlatformInfo.isMobile; - } - - Widget? _getEmailActionSubmenu({ - required EmailActionType actionType, - required ImagePaths imagePaths, - required PresentationEmail presentationEmail, - required List