use a snozzeActionParams struct to pass values

This commit is contained in:
Satindar Dhillon
2022-02-15 11:45:45 -08:00
parent 1ba9082238
commit 91c294f9c8
2 changed files with 16 additions and 4 deletions

View File

@ -239,9 +239,9 @@ public struct HomeFeedView: View {
}
}
.formSheet(isPresented: $snoozePresented) {
SnoozeView(snoozePresented: $snoozePresented, itemToSnooze: $itemToSnooze) { linkId, until, successMessage in
SnoozeView(snoozePresented: $snoozePresented, itemToSnooze: $itemToSnooze) {
viewModel.performActionSubject.send(
.snooze(linkId: linkId, until: until, successMessage: successMessage)
.snooze(linkId: $0.feedItemId, until: $0.snoozeUntilDate, successMessage: $0.successMessage)
)
}
}

View File

@ -4,7 +4,7 @@ import SwiftUI
struct SnoozeView: View {
@Binding var snoozePresented: Bool
@Binding var itemToSnooze: FeedItem?
let snoozeAction: (String, Date, String?) -> Void
let snoozeAction: (SnoozeActionParams) -> Void
var body: some View {
VStack {
@ -28,7 +28,13 @@ struct SnoozeView: View {
private func snoozeItem(_ snooze: Snooze) {
if let item = itemToSnooze {
withAnimation(.linear(duration: 0.4)) {
snoozeAction(item.id, snooze.until, "Snoozed until \(snooze.untilStr)")
snoozeAction(
SnoozeActionParams(
feedItemId: item.id,
snoozeUntilDate: snooze.until,
successMessage: "Snoozed until \(snooze.untilStr)"
)
)
}
}
itemToSnooze = nil
@ -36,6 +42,12 @@ struct SnoozeView: View {
}
}
struct SnoozeActionParams {
let feedItemId: String
let snoozeUntilDate: Date
let successMessage: String?
}
private struct SnoozeIconButtonView: View {
let snooze: Snooze
let action: (_ snooze: Snooze) -> Void