TF-2930 Fix inline attachment lost in draft emails

This commit is contained in:
dab246
2024-07-17 13:25:58 +07:00
committed by Dat H. Pham
parent 1fc3b76f94
commit b0ee2f24ba
14 changed files with 90 additions and 58 deletions
@@ -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,
)