TF-3413 Support Reply to list for email
This commit is contained in:
@@ -74,6 +74,7 @@ import 'package:tmail_ui_user/features/email/domain/state/get_email_content_stat
|
||||
import 'package:tmail_ui_user/features/email/domain/state/transform_html_email_content_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/get_email_content_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/transform_html_email_content_interactor.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/email/presentation/utils/email_utils.dart';
|
||||
import 'package:tmail_ui_user/features/home/data/exceptions/session_exceptions.dart';
|
||||
@@ -640,11 +641,15 @@ class ComposerController extends BaseController
|
||||
_updateStatusEmailSendButton();
|
||||
break;
|
||||
case EmailActionType.reply:
|
||||
case EmailActionType.replyToList:
|
||||
case EmailActionType.replyAll:
|
||||
log('ComposerController::_initEmail:listPost = ${arguments.listPost}');
|
||||
_initEmailAddress(
|
||||
presentationEmail: arguments.presentationEmail!,
|
||||
actionType: arguments.emailActionType,
|
||||
mailboxRole: arguments.presentationEmail!.mailboxContain?.role ?? mailboxDashBoardController.selectedMailbox.value?.role
|
||||
mailboxRole: arguments.presentationEmail!.mailboxContain?.role
|
||||
?? mailboxDashBoardController.selectedMailbox.value?.role,
|
||||
listPost: arguments.listPost,
|
||||
);
|
||||
_initSubjectEmail(
|
||||
presentationEmail: arguments.presentationEmail!,
|
||||
@@ -798,12 +803,15 @@ class ComposerController extends BaseController
|
||||
required PresentationEmail presentationEmail,
|
||||
required EmailActionType actionType,
|
||||
Role? mailboxRole,
|
||||
String? listPost,
|
||||
}) {
|
||||
log('ComposerController::_initEmailAddress:listPost = $listPost');
|
||||
final recipients = presentationEmail.generateRecipientsEmailAddressForComposer(
|
||||
emailActionType: actionType,
|
||||
mailboxRole: mailboxRole
|
||||
mailboxRole: mailboxRole,
|
||||
listPost: listPost,
|
||||
);
|
||||
final userName = mailboxDashBoardController.sessionCurrent?.username;
|
||||
final userName = mailboxDashBoardController.sessionCurrent?.username;
|
||||
if (userName != null) {
|
||||
final isSender = presentationEmail.from.asList().every((element) => element.email == userName.value);
|
||||
if (isSender) {
|
||||
|
||||
@@ -74,6 +74,7 @@ extension CreateEmailRequestExtension on CreateEmailRequest {
|
||||
|
||||
MessageIdsHeaderValue? createInReplyTo() {
|
||||
if (emailActionType == EmailActionType.reply ||
|
||||
emailActionType == EmailActionType.replyToList ||
|
||||
emailActionType == EmailActionType.replyAll
|
||||
) {
|
||||
return messageId;
|
||||
@@ -83,6 +84,7 @@ extension CreateEmailRequestExtension on CreateEmailRequest {
|
||||
|
||||
MessageIdsHeaderValue? createReferences() {
|
||||
if (emailActionType == EmailActionType.reply ||
|
||||
emailActionType == EmailActionType.replyToList ||
|
||||
emailActionType == EmailActionType.replyAll ||
|
||||
emailActionType == EmailActionType.forward
|
||||
) {
|
||||
|
||||
@@ -12,6 +12,7 @@ extension EmailActionTypeExtension on EmailActionType {
|
||||
String getSubjectComposer(BuildContext? context, String subject) {
|
||||
switch(this) {
|
||||
case EmailActionType.reply:
|
||||
case EmailActionType.replyToList:
|
||||
case EmailActionType.replyAll:
|
||||
if (subject.toLowerCase().startsWith('re:')) {
|
||||
return subject;
|
||||
@@ -60,6 +61,7 @@ extension EmailActionTypeExtension on EmailActionType {
|
||||
final languageTag = locale.toLanguageTag();
|
||||
switch(this) {
|
||||
case EmailActionType.reply:
|
||||
case EmailActionType.replyToList:
|
||||
case EmailActionType.replyAll:
|
||||
final receivedAt = presentationEmail.receivedAt;
|
||||
final emailAddress = presentationEmail.from.toEscapeHtmlStringUseCommaSeparator();
|
||||
|
||||
@@ -80,6 +80,7 @@ class MobileEditorView extends StatelessWidget with EditorViewMixin {
|
||||
}
|
||||
);
|
||||
case EmailActionType.reply:
|
||||
case EmailActionType.replyToList:
|
||||
case EmailActionType.replyAll:
|
||||
case EmailActionType.forward:
|
||||
if (contentViewState == null) {
|
||||
|
||||
@@ -145,6 +145,7 @@ class WebEditorView extends StatelessWidget with EditorViewMixin {
|
||||
}
|
||||
);
|
||||
case EmailActionType.reply:
|
||||
case EmailActionType.replyToList:
|
||||
case EmailActionType.replyAll:
|
||||
case EmailActionType.forward:
|
||||
if (contentViewState == null) {
|
||||
|
||||
Reference in New Issue
Block a user