Skip to content

Commit 64a5e82

Browse files
feat: Update behavior according to action
1 parent 0367ed0 commit 64a5e82

File tree

5 files changed

+13
-11
lines changed

5 files changed

+13
-11
lines changed

Mail/Components/ActionsPanelButton.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ struct ActionsPanelButton<Content: View>: View {
4242
panelSource: panelSource,
4343
popoverArrowEdge: popoverArrowEdge
4444
) { action in
45-
if action == .markAsUnread {
45+
if action == .markAsUnread || action == .snooze || action == .modifySnooze {
4646
dismiss()
4747
}
4848
}

Mail/Views/Bottom sheets/Actions/ActionsPanelViewModifier.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,6 @@ struct ActionsPanelViewModifier: ViewModifier {
147147
messages: messagesToSnooze,
148148
initialDate: initialSnoozedDate,
149149
folder: originFolder?.freezeIfNeeded()
150-
) { completionHandler?(.snooze) }
150+
) { completionHandler?($0) }
151151
}
152152
}

Mail/Views/Schedule/SnoozedFloatingPanel.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ extension View {
2424
messages: [Message]?,
2525
initialDate: Date?,
2626
folder: Folder?,
27-
completionHandler: (() -> Void)? = nil
27+
completionHandler: ((Action) -> Void)? = nil
2828
) -> some View {
2929
modifier(
3030
SnoozedFloatingPanel(
@@ -45,7 +45,7 @@ struct SnoozedFloatingPanel: ViewModifier {
4545
let messages: [Message]?
4646
let initialDate: Date?
4747
let folder: Folder?
48-
let completionHandler: (() -> Void)?
48+
let completionHandler: ((Action) -> Void)?
4949

5050
func body(content: Content) -> some View {
5151
content
@@ -64,8 +64,8 @@ struct SnoozedFloatingPanel: ViewModifier {
6464
guard let messages else { return }
6565

6666
Task {
67-
try await actionsManager.performSnooze(messages: messages, date: date, originFolder: folder)
68-
completionHandler?()
67+
let action = try await actionsManager.performSnooze(messages: messages, date: date, originFolder: folder)
68+
completionHandler?(action)
6969
}
7070
}
7171
}

Mail/Views/Thread/SnoozedThreadHeaderView.swift

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,8 @@ struct SnoozedThreadHeaderView: View {
4848
.snoozedFloatingPanel(
4949
messages: messagesToSnooze,
5050
initialDate: date,
51-
folder: folder,
52-
completionHandler: dismiss.callAsFunction
53-
)
51+
folder: folder
52+
) { _ in dismiss() }
5453
}
5554

5655
private func edit() {

MailCore/Cache/Actions/ActionsManager.swift

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -291,19 +291,22 @@ public class ActionsManager: ObservableObject {
291291
}
292292
}
293293

294-
public func performSnooze(messages: [Message], date: Date, originFolder: Folder?) async throws {
294+
public func performSnooze(messages: [Message], date: Date, originFolder: Folder?) async throws -> Action {
295295
let messagesToExecuteAction = messages.lastMessagesToExecuteAction(
296296
currentMailboxEmail: mailboxManager.mailbox.email,
297297
currentFolder: originFolder
298298
)
299299

300-
if messagesToExecuteAction.allSatisfy(\.isSnoozed) {
300+
let allMessagesAreSnoozed = messagesToExecuteAction.allSatisfy(\.isSnoozed)
301+
if allMessagesAreSnoozed {
301302
try await mailboxManager.updateSnooze(messages: messagesToExecuteAction, until: date)
302303
} else {
303304
try await mailboxManager.snooze(messages: messagesToExecuteAction, until: date)
304305
}
305306

306307
snackbarPresenter.show(message: MailResourcesStrings.Localizable.snackbarSnoozeSuccess(date.formatted()))
308+
309+
return allMessagesAreSnoozed ? .modifySnooze : .snooze
307310
}
308311

309312
@MainActor

0 commit comments

Comments
 (0)