TF-4301 Add "Create a new label" button in Label As menus and wire up tagging in email view
This commit is contained in:
@@ -12,6 +12,7 @@ import 'package:tmail_ui_user/features/email/presentation/model/popup_menu_item_
|
||||
import 'package:tmail_ui_user/features/email/presentation/utils/email_action_reactor/email_action_reactor.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/main/localizations/app_localizations.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||
|
||||
@@ -26,6 +27,7 @@ class EmailContextMenuParams {
|
||||
final OpenPopupMenuActionGroup openPopupMenu;
|
||||
final OnHandleEmailByActionType onHandleEmailByActionType;
|
||||
final OnSelectLabelAction onSelectLabelAction;
|
||||
final OnCreateANewLabelAction onCreateANewLabelAction;
|
||||
|
||||
EmailContextMenuParams({
|
||||
required this.context,
|
||||
@@ -38,6 +40,7 @@ class EmailContextMenuParams {
|
||||
required this.openPopupMenu,
|
||||
required this.onHandleEmailByActionType,
|
||||
required this.onSelectLabelAction,
|
||||
required this.onCreateANewLabelAction,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -65,8 +68,7 @@ mixin EmailMoreActionContextMenu on LabelSubMenuMixin {
|
||||
final isChildOfTeam = mb?.isChildOfTeamMailboxes ?? false;
|
||||
|
||||
final canPermanentlyDelete = isDrafts || isSpam || isTrash;
|
||||
final shouldShowLabelAs =
|
||||
params.isLabelAvailable && (params.labels?.isNotEmpty ?? false);
|
||||
final shouldShowLabelAs = params.isLabelAvailable;
|
||||
|
||||
return [
|
||||
isRead ? EmailActionType.markAsUnread : EmailActionType.markAsRead,
|
||||
@@ -136,6 +138,11 @@ mixin EmailMoreActionContextMenu on LabelSubMenuMixin {
|
||||
popBack();
|
||||
params.onSelectLabelAction(label, isSelected);
|
||||
},
|
||||
onCreateANewLabelAction: () {
|
||||
submenuController.hide();
|
||||
popBack();
|
||||
params.onCreateANewLabelAction();
|
||||
},
|
||||
),
|
||||
);
|
||||
}).toList();
|
||||
|
||||
@@ -15,7 +15,9 @@ import 'package:tmail_ui_user/features/base/widget/keyboard/keyboard_handler_wra
|
||||
import 'package:tmail_ui_user/features/base/widget/report_message_banner.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/extensions/presentation_email_extension.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/labels/presentation/extensions/handle_label_action_type_extension.dart';
|
||||
import 'package:tmail_ui_user/features/labels/presentation/mixin/label_sub_menu_mixin.dart';
|
||||
import 'package:tmail_ui_user/features/labels/presentation/models/label_action_type.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/move_folder_content_state.dart';
|
||||
@@ -633,6 +635,14 @@ class ThreadView extends GetWidget<ThreadController>
|
||||
isSelected,
|
||||
);
|
||||
},
|
||||
onCreateANewLabelAction: () {
|
||||
dashboardController.labelController.handleLabelActionType(
|
||||
actionType: LabelActionType.create,
|
||||
accountId: dashboardController.accountId.value,
|
||||
onLabelActionCallback: (label) => dashboardController
|
||||
.toggleLabelToEmail(email.id!, label, true),
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user