diff --git a/Packages/ComposeUI/Sources/ComposeUI/Controllers/ComposeController.swift b/Packages/ComposeUI/Sources/ComposeUI/Controllers/ComposeController.swift index ceb8a227..df2db563 100644 --- a/Packages/ComposeUI/Sources/ComposeUI/Controllers/ComposeController.swift +++ b/Packages/ComposeUI/Sources/ComposeUI/Controllers/ComposeController.swift @@ -135,6 +135,16 @@ public final class ComposeController: ViewController { } } + @MainActor + func cancel(deleteDraft: Bool) { + if deleteDraft { + DraftsManager.shared.remove(draft) + } else { + DraftsManager.save() + } + config.dismiss(.cancel) + } + func postStatus() { guard !isPosting, draft.hasContent else { @@ -329,6 +339,14 @@ public final class ComposeController: ViewController { // otherwise all Buttons in the nav bar are made semibold .font(.system(size: 17, weight: .regular)) } + .confirmationDialog("Are you sure?", isPresented: $controller.isShowingSaveDraftSheet) { + Button(action: { controller.cancel(deleteDraft: false) }) { + Text("Save Draft") + } + Button(role: .destructive, action: { controller.cancel(deleteDraft: true) }) { + Text("Delete Draft") + } + } } @ViewBuilder