Remove all iOS 14 specific components and workarounds and comply with SwiftUI 3. Signed-off-by: kingbri <bdashore3@proton.me>
55 lines
1.4 KiB
Swift
55 lines
1.4 KiB
Swift
//
|
|
// HistoryActionsView.swift
|
|
// Ferrite
|
|
//
|
|
// Created by Brian Dashore on 9/7/22.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
struct HistoryActionsView: View {
|
|
@EnvironmentObject var logManager: LoggingManager
|
|
|
|
@State private var showActionSheet = false
|
|
|
|
var body: some View {
|
|
Button("Clear") {
|
|
showActionSheet.toggle()
|
|
}
|
|
.tint(.red)
|
|
.confirmationDialog(
|
|
"Clear watch history",
|
|
isPresented: $showActionSheet,
|
|
titleVisibility: .visible
|
|
) {
|
|
Button("Past day", role: .destructive) {
|
|
deleteHistory(.day)
|
|
}
|
|
Button("Past week", role: .destructive) {
|
|
deleteHistory(.week)
|
|
}
|
|
Button("Past month", role: .destructive) {
|
|
deleteHistory(.month)
|
|
}
|
|
Button("All time", role: .destructive) {
|
|
deleteHistory(.allTime)
|
|
}
|
|
} message: {
|
|
Text("This is an irreversible action!")
|
|
}
|
|
}
|
|
|
|
func deleteHistory(_ deleteRange: HistoryDeleteRange) {
|
|
do {
|
|
try PersistenceController.shared.batchDeleteHistory(range: deleteRange)
|
|
} catch {
|
|
logManager.error("History delete error: \(error)")
|
|
}
|
|
}
|
|
}
|
|
|
|
struct HistoryActionsView_Previews: PreviewProvider {
|
|
static var previews: some View {
|
|
HistoryActionsView()
|
|
}
|
|
}
|