TF-3939 Replace email selection bottom actions to top actions

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-08-05 11:50:14 +07:00
committed by Dat H. Pham
parent 6e86946a1a
commit b7af668d4a
10 changed files with 258 additions and 127 deletions
@@ -0,0 +1,32 @@
import 'package:model/email/email_action_type.dart';
import 'package:tmail_ui_user/features/thread/presentation/model/email_selection_action_type.dart';
extension EmailSelectionActionTypeExtension on EmailSelectionActionType {
EmailActionType? toEmailActionType() {
switch (this) {
case EmailSelectionActionType.markAsRead:
return EmailActionType.markAsRead;
case EmailSelectionActionType.markAsUnread:
return EmailActionType.markAsUnread;
case EmailSelectionActionType.markAsStarred:
return EmailActionType.markAsStarred;
case EmailSelectionActionType.unMarkAsStarred:
return EmailActionType.unMarkAsStarred;
case EmailSelectionActionType.moveToFolder:
return EmailActionType.moveToMailbox;
case EmailSelectionActionType.moveToTrash:
return EmailActionType.moveToTrash;
case EmailSelectionActionType.markAsSpam:
return EmailActionType.moveToSpam;
case EmailSelectionActionType.markAsNotSpam:
return EmailActionType.unSpam;
case EmailSelectionActionType.archiveMessage:
return EmailActionType.archiveMessage;
case EmailSelectionActionType.deletePermanently:
return EmailActionType.deletePermanently;
case EmailSelectionActionType.selectAll:
case EmailSelectionActionType.moreAction:
return null;
}
}
}
@@ -0,0 +1,16 @@
import 'package:model/email/presentation_email.dart';
import 'package:tmail_ui_user/features/thread/presentation/extensions/email_selection_action_type_extension.dart';
import 'package:tmail_ui_user/features/thread/presentation/model/email_selection_action_type.dart';
import 'package:tmail_ui_user/features/thread/presentation/thread_controller.dart';
extension HandlePressEmailSelectionActionExtension on ThreadController {
void handlePressEmailSelectionAction(
EmailSelectionActionType type,
List<PresentationEmail> emails,
) {
final emailActionType = type.toEmailActionType();
if (emailActionType != null) {
pressEmailSelectionAction(emailActionType, emails);
}
}
}