TF-1865: Get content sending email when open item
(cherry picked from commit 3fdec172d72e27020187679d79ffe4f44953678b)
This commit is contained in:
@@ -7,10 +7,14 @@ import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/utc_date.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email_body_part.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email_body_value.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email_header.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/keyword_identifier.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
import 'package:model/email/email_content.dart';
|
||||
import 'package:model/extensions/email_address_extension.dart';
|
||||
import 'package:model/extensions/media_type_extension.dart';
|
||||
import 'package:model/mailbox/presentation_mailbox.dart';
|
||||
import 'package:model/mailbox/select_mode.dart';
|
||||
|
||||
@@ -35,6 +39,8 @@ class PresentationEmail with EquatableMixin {
|
||||
final Uri? routeWeb;
|
||||
final PresentationMailbox? mailboxContain;
|
||||
final List<EmailHeader>? emailHeader;
|
||||
final Set<EmailBodyPart>? htmlBody;
|
||||
final Map<PartId, EmailBodyValue>? bodyValues;
|
||||
|
||||
PresentationEmail({
|
||||
this.id,
|
||||
@@ -55,7 +61,9 @@ class PresentationEmail with EquatableMixin {
|
||||
this.selectMode = SelectMode.INACTIVE,
|
||||
this.routeWeb,
|
||||
this.mailboxContain,
|
||||
this.emailHeader
|
||||
this.emailHeader,
|
||||
this.htmlBody,
|
||||
this.bodyValues,
|
||||
});
|
||||
|
||||
String getSenderName() {
|
||||
@@ -107,6 +115,20 @@ class PresentationEmail with EquatableMixin {
|
||||
return DateFormat(sentAt?.value.toPattern(), newLocale).format(sentAt?.value ?? DateTime.now());
|
||||
}
|
||||
|
||||
List<EmailContent> get emailContentList {
|
||||
final newHtmlBody = htmlBody
|
||||
?.where((emailBody) => emailBody.partId != null && emailBody.type != null)
|
||||
.toList() ?? <EmailBodyPart>[];
|
||||
|
||||
final mapHtmlBody = { for (var emailBody in newHtmlBody) emailBody.partId! : emailBody.type! };
|
||||
|
||||
final emailContents = bodyValues?.entries
|
||||
.map((entries) => EmailContent(mapHtmlBody[entries.key].toEmailContentType(), entries.value.value))
|
||||
.toList();
|
||||
|
||||
return emailContents ?? [];
|
||||
}
|
||||
|
||||
@override
|
||||
List<Object?> get props => [
|
||||
id,
|
||||
|
||||
@@ -145,22 +145,23 @@ extension EmailExtension on Email {
|
||||
}
|
||||
) {
|
||||
return PresentationEmail(
|
||||
id: emailId ?? id,
|
||||
keywords: keywords,
|
||||
size: size,
|
||||
receivedAt: receivedAt,
|
||||
hasAttachment: hasAttachment,
|
||||
preview: preview,
|
||||
subject: subject,
|
||||
sentAt: createAt ?? sentAt,
|
||||
from: from,
|
||||
to: to,
|
||||
cc: cc,
|
||||
bcc: bcc,
|
||||
replyTo: replyTo,
|
||||
mailboxIds: mailboxIds,
|
||||
selectMode: selectMode,
|
||||
emailHeader: headers?.toList()
|
||||
id: emailId ?? id,
|
||||
keywords: keywords,
|
||||
size: size,
|
||||
receivedAt: receivedAt,
|
||||
hasAttachment: hasAttachment,
|
||||
preview: preview,
|
||||
subject: subject,
|
||||
sentAt: createAt ?? sentAt,
|
||||
from: from,
|
||||
to: to,
|
||||
cc: cc,
|
||||
bcc: bcc,
|
||||
replyTo: replyTo,
|
||||
mailboxIds: mailboxIds,
|
||||
selectMode: selectMode,
|
||||
emailHeader: headers?.toList(),
|
||||
bodyValues: bodyValues
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user