TF-2930 Fix inline attachment lost in draft emails
This commit is contained in:
@@ -469,6 +469,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
GetEmailContentSuccess(
|
||||
htmlEmailContent: emailLoaded.htmlContent,
|
||||
attachments: emailLoaded.attachments,
|
||||
inlineImages: emailLoaded.inlineImages,
|
||||
emailCurrent: emailLoaded.emailCurrent
|
||||
)
|
||||
)));
|
||||
@@ -501,22 +502,23 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
|
||||
currentEmailLoaded.value = EmailLoaded(
|
||||
htmlContent: success.htmlEmailContent,
|
||||
attachments: List.of(success.attachments),
|
||||
attachments: List.of(success.attachments ?? []),
|
||||
inlineImages: List.of(success.inlineImages ?? []),
|
||||
emailCurrent: success.emailCurrent,
|
||||
);
|
||||
emailSupervisorController.pushEmailQueue(currentEmailLoaded.value!);
|
||||
|
||||
if (success.emailCurrent?.id == currentEmail?.id) {
|
||||
attachments.value = success.attachments;
|
||||
attachments.value = success.attachments ?? [];
|
||||
attachmentsViewState.value = {
|
||||
for (var attachment in attachments.where((item) => item.blobId != null))
|
||||
attachment.blobId!: Right(IdleDownloadAttachmentForWeb())
|
||||
};
|
||||
|
||||
if (_canParseCalendarEvent(blobIds: success.attachments.calendarEventBlobIds)) {
|
||||
if (_canParseCalendarEvent(blobIds: success.attachments?.calendarEventBlobIds ?? {})) {
|
||||
_parseCalendarEventAction(
|
||||
accountId: mailboxDashBoardController.accountId.value!,
|
||||
blobIds: success.attachments.calendarEventBlobIds,
|
||||
blobIds: success.attachments?.calendarEventBlobIds ?? {},
|
||||
emailContents: success.htmlEmailContent
|
||||
);
|
||||
} else {
|
||||
@@ -545,22 +547,23 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
|
||||
currentEmailLoaded.value = EmailLoaded(
|
||||
htmlContent: success.htmlEmailContent,
|
||||
attachments: List.of(success.attachments),
|
||||
attachments: List.of(success.attachments ?? []),
|
||||
inlineImages: List.of(success.inlineImages ?? []),
|
||||
emailCurrent: success.emailCurrent,
|
||||
);
|
||||
emailSupervisorController.pushEmailQueue(currentEmailLoaded.value!);
|
||||
|
||||
if (success.emailCurrent?.id == currentEmail?.id) {
|
||||
attachments.value = success.attachments;
|
||||
attachments.value = success.attachments ?? [];
|
||||
attachmentsViewState.value = {
|
||||
for (var attachment in attachments.where((item) => item.blobId != null))
|
||||
attachment.blobId!: Right(IdleDownloadAttachmentForWeb())
|
||||
};
|
||||
|
||||
if (_canParseCalendarEvent(blobIds: success.attachments.calendarEventBlobIds)) {
|
||||
if (_canParseCalendarEvent(blobIds: success.attachments?.calendarEventBlobIds ?? {})) {
|
||||
_parseCalendarEventAction(
|
||||
accountId: mailboxDashBoardController.accountId.value!,
|
||||
blobIds: success.attachments.calendarEventBlobIds,
|
||||
blobIds: success.attachments?.calendarEventBlobIds ?? {},
|
||||
emailContents: success.htmlEmailContent
|
||||
);
|
||||
} else {
|
||||
@@ -1343,6 +1346,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
ComposerArguments.replyEmail(
|
||||
presentationEmail: presentationEmail,
|
||||
content: currentEmailLoaded.value?.htmlContent ?? '',
|
||||
inlineImages: currentEmailLoaded.value?.inlineImages ?? [],
|
||||
mailboxRole: presentationEmail.mailboxContain?.role,
|
||||
messageId: currentEmailLoaded.value?.emailCurrent?.messageId,
|
||||
references: currentEmailLoaded.value?.emailCurrent?.references,
|
||||
@@ -1354,6 +1358,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
ComposerArguments.replyAllEmail(
|
||||
presentationEmail: presentationEmail,
|
||||
content: currentEmailLoaded.value?.htmlContent ?? '',
|
||||
inlineImages: currentEmailLoaded.value?.inlineImages ?? [],
|
||||
mailboxRole: presentationEmail.mailboxContain?.role,
|
||||
messageId: currentEmailLoaded.value?.emailCurrent?.messageId,
|
||||
references: currentEmailLoaded.value?.emailCurrent?.references,
|
||||
@@ -1366,6 +1371,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
presentationEmail: presentationEmail,
|
||||
content: currentEmailLoaded.value?.htmlContent ?? '',
|
||||
attachments: attachments,
|
||||
inlineImages: currentEmailLoaded.value?.inlineImages ?? [],
|
||||
messageId: currentEmailLoaded.value?.emailCurrent?.messageId,
|
||||
references: currentEmailLoaded.value?.emailCurrent?.references,
|
||||
)
|
||||
|
||||
@@ -95,11 +95,9 @@ class ComposerArguments extends RouterArguments {
|
||||
emailActionType: EmailActionType.reopenComposerBrowser,
|
||||
presentationEmail: composerCache.email?.toPresentationEmail(),
|
||||
emailContents: composerCache.email?.emailContentList.asHtmlString,
|
||||
attachments: composerCache.email?.allAttachments
|
||||
.where((attachment) => attachment.disposition != ContentDisposition.inline)
|
||||
.toList(),
|
||||
attachments: composerCache.email?.allAttachments.getListAttachmentsDisplayedOutside(composerCache.email?.htmlBodyAttachments ?? []),
|
||||
selectedIdentity: composerCache.identity,
|
||||
inlineImages: composerCache.email?.attachmentsWithCid,
|
||||
inlineImages: composerCache.email?.allAttachments.listAttachmentsDisplayedInContent,
|
||||
readRecepientEnabled: composerCache.readReceipentEnabled,
|
||||
displayMode: composerCache.displayMode,
|
||||
);
|
||||
@@ -107,6 +105,7 @@ class ComposerArguments extends RouterArguments {
|
||||
factory ComposerArguments.replyEmail({
|
||||
required PresentationEmail presentationEmail,
|
||||
required String content,
|
||||
required List<Attachment> inlineImages,
|
||||
Role? mailboxRole,
|
||||
MessageIdsHeaderValue? messageId,
|
||||
MessageIdsHeaderValue? references,
|
||||
@@ -114,6 +113,7 @@ class ComposerArguments extends RouterArguments {
|
||||
emailActionType: EmailActionType.reply,
|
||||
presentationEmail: presentationEmail,
|
||||
emailContents: content,
|
||||
inlineImages: inlineImages,
|
||||
mailboxRole: mailboxRole,
|
||||
messageId: messageId,
|
||||
references: references,
|
||||
@@ -122,6 +122,7 @@ class ComposerArguments extends RouterArguments {
|
||||
factory ComposerArguments.replyAllEmail({
|
||||
required PresentationEmail presentationEmail,
|
||||
required String content,
|
||||
required List<Attachment> inlineImages,
|
||||
Role? mailboxRole,
|
||||
MessageIdsHeaderValue? messageId,
|
||||
MessageIdsHeaderValue? references,
|
||||
@@ -129,6 +130,7 @@ class ComposerArguments extends RouterArguments {
|
||||
emailActionType: EmailActionType.replyAll,
|
||||
presentationEmail: presentationEmail,
|
||||
emailContents: content,
|
||||
inlineImages: inlineImages,
|
||||
mailboxRole: mailboxRole,
|
||||
messageId: messageId,
|
||||
references: references,
|
||||
@@ -138,6 +140,7 @@ class ComposerArguments extends RouterArguments {
|
||||
required PresentationEmail presentationEmail,
|
||||
required String content,
|
||||
required List<Attachment> attachments,
|
||||
required List<Attachment> inlineImages,
|
||||
MessageIdsHeaderValue? messageId,
|
||||
MessageIdsHeaderValue? references,
|
||||
}) => ComposerArguments(
|
||||
@@ -145,6 +148,7 @@ class ComposerArguments extends RouterArguments {
|
||||
presentationEmail: presentationEmail,
|
||||
emailContents: content,
|
||||
attachments: attachments,
|
||||
inlineImages: inlineImages,
|
||||
mailboxRole: presentationEmail.mailboxContain?.role,
|
||||
messageId: messageId,
|
||||
references: references,
|
||||
|
||||
@@ -5,11 +5,13 @@ import 'package:model/email/attachment.dart';
|
||||
class EmailLoaded with EquatableMixin {
|
||||
final String htmlContent;
|
||||
final List<Attachment> attachments;
|
||||
final List<Attachment> inlineImages;
|
||||
final Email? emailCurrent;
|
||||
|
||||
EmailLoaded({
|
||||
required this.htmlContent,
|
||||
required this.attachments,
|
||||
required this.inlineImages,
|
||||
this.emailCurrent,
|
||||
});
|
||||
|
||||
@@ -17,6 +19,7 @@ class EmailLoaded with EquatableMixin {
|
||||
List<Object?> get props => [
|
||||
htmlContent,
|
||||
attachments,
|
||||
inlineImages,
|
||||
emailCurrent
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user