Skip to content

Commit 5568560

Browse files
fix: Open draft with correct content (#1758)
2 parents 852f696 + fbb1e2d commit 5568560

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

Mail/Views/New Message/ComposeMessageView.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,8 @@ struct ComposeMessageView: View {
221221
}
222222

223223
aiModel.draftContentManager = draftContentManager
224+
draftContentManager.startObservingDraft()
225+
224226
isLoadingContent = false
225227
} catch {
226228
snackbarPresenter.show(message: MailError.unknownError.errorDescription ?? "")

MailCore/Cache/DraftContentManager.swift

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ public class DraftContentManager: ObservableObject {
5353
self.draftLocalUUID = draftLocalUUID
5454
self.messageReply = messageReply
5555
self.mailboxManager = mailboxManager
56+
}
57+
58+
public func startObservingDraft() {
5659
draftContentObservation = _draftContent
5760
.projectedValue
5861
.throttle(for: .milliseconds(1000), scheduler: DispatchQueue.global(qos: .userInitiated), latest: true)
@@ -238,14 +241,13 @@ public extension DraftContentManager {
238241
shouldAddSignatureText: Bool,
239242
attachments: [Attachment],
240243
draftPrimaryKey: String
241-
) throws {
242-
var fetchedDraft: Draft?
244+
) async throws {
245+
var updatedDraftBody: String?
243246
try mailboxManager.writeTransaction { writableRealm in
244247
guard let liveIncompleteDraft = getLiveDraft(realm: writableRealm, draftPrimaryKey: draftPrimaryKey) else {
245248
return
246249
}
247250

248-
fetchedDraft = liveIncompleteDraft
249251
if let signature, liveIncompleteDraft.identityId == nil || liveIncompleteDraft.identityId?.isEmpty == true {
250252
liveIncompleteDraft.identityId = "\(signature.id)"
251253
if shouldAddSignatureText {
@@ -259,11 +261,17 @@ public extension DraftContentManager {
259261
for attachment in attachments {
260262
liveIncompleteDraft.attachments.append(attachment)
261263
}
264+
265+
updatedDraftBody = liveIncompleteDraft.body
262266
}
263267

264-
guard fetchedDraft != nil else {
268+
guard let updatedDraftBody else {
265269
throw MailError.unknownError
266270
}
271+
272+
await Task { @MainActor in
273+
self.draftContent = updatedDraftBody
274+
}.value
267275
}
268276
}
269277

0 commit comments

Comments
 (0)