TF-185 [BUG] Fix can not display all parts of email which have multiple html part

This commit is contained in:
dab246
2021-10-15 16:14:41 +07:00
committed by Dat H. Pham
parent a6f2a23cec
commit ececc65a26
16 changed files with 282 additions and 154 deletions
@@ -35,5 +35,5 @@ abstract class EmailRepository {
MarkStarAction markStarAction
);
Future<String> transformEmailContentToHtml(EmailContent emailContent);
Future<List<EmailContent>> transformEmailContent(List<EmailContent> emailContents);
}
@@ -2,13 +2,13 @@ import 'package:core/core.dart';
import 'package:model/model.dart';
class GetEmailContentSuccess extends UIState {
final EmailContent emailContent;
final List<EmailContent> emailContents;
final List<Attachment> attachments;
GetEmailContentSuccess(this.emailContent, this.attachments);
GetEmailContentSuccess(this.emailContents, this.attachments);
@override
List<Object?> get props => [emailContent, attachments];
List<Object?> get props => [emailContents, attachments];
}
class GetEmailContentFailure extends FeatureFailure {
@@ -17,15 +17,8 @@ class GetEmailContentInteractor {
final email = await emailRepository.getEmailContent(accountId, emailId);
if (email.emailContentList.isNotEmpty) {
final emailContent = email.emailContentList.first;
if (emailContent.type == EmailContentType.textHtml) {
final contentHtml = await emailRepository.transformEmailContentToHtml(emailContent);
yield Right<Failure, Success>(GetEmailContentSuccess(
EmailContent(emailContent.type, contentHtml),
email.allAttachments));
} else {
yield Right<Failure, Success>(GetEmailContentSuccess(emailContent, email.allAttachments));
}
final newEmailContents = await emailRepository.transformEmailContent(email.emailContentList);
yield Right<Failure, Success>(GetEmailContentSuccess(newEmailContents, email.allAttachments));
} else {
yield Left(GetEmailContentFailure(null));
}