Files
workavia-mail-front/lib/features/email/presentation/extensions/email_content_extension.dart
T
2021-08-25 14:02:01 +07:00

49 lines
1.7 KiB
Dart

import 'package:jmap_dart_client/jmap/mail/email/email_body_part.dart';
import 'package:model/email/email_content.dart';
import 'package:tmail_ui_user/features/email/presentation/constants/email_contants.dart';
import 'package:tmail_ui_user/features/email/presentation/model/attachment_file.dart';
import 'package:tmail_ui_user/features/email/presentation/model/message_content.dart';
import 'package:tmail_ui_user/features/email/presentation/model/text_format.dart';
import 'package:tmail_ui_user/features/email/presentation/extensions/email_body_part_extension.dart';
extension EmailContentExtension on EmailContent {
List<MessageContent> getListMessageContent() {
Map<PartId, TextFormat> mapHtmlBody = Map();
List<MessageContent> listMessageContent = [];
htmlBody?.forEach((element) {
if (element.partId != null && element.type != null) {
mapHtmlBody[element.partId!] = element.type!.mimeType == EmailConstants.HTML_TEXT
? TextFormat.HTML
: TextFormat.PLAIN;
}
});
bodyValues?.forEach((key, value) {
listMessageContent.add(MessageContent(mapHtmlBody[key] ?? TextFormat.PLAIN, value.value));
});
return listMessageContent;
}
List<AttachmentFile> getListAttachment() {
if (attachments != null) {
return attachments!
.where((element) => (element.disposition != null && element.disposition != 'inline'))
.map((item) => item.toAttachmentFile())
.toList();
}
return [];
}
List<AttachmentFile> getListAttachmentInline() {
if (attachments != null) {
return attachments!
.where((element) => element.disposition == 'inline')
.map((item) => item.toAttachmentFile())
.toList();
}
return [];
}
}