TempTrack-iOS/TempTrack/Views/HistoryList.swift

56 lines
1.7 KiB
Swift
Raw Normal View History

import SwiftUI
2025-01-31 13:06:11 +01:00
import SFSafeSymbols
struct HistoryList: View {
@EnvironmentObject
var storage: PersistentStorage
2025-01-31 13:06:11 +01:00
@State
private var showExportSheet = false
var body: some View {
NavigationView {
List(storage.dailyMeasurementCounts) { day in
NavigationLink(destination: {
2023-06-14 17:52:43 +02:00
DayView(dateIndex: day.dateIndex)
.environmentObject(storage)
}) {
HistoryListRow(entry: day)
2023-06-13 17:14:57 +02:00
.swipeActions(edge: .trailing, allowsFullSwipe: true) {
Button {
deleteRow(for: day.dateIndex)
} label: {
2023-06-14 17:52:43 +02:00
Label("Delete", systemSymbol: .trash)
2023-06-13 17:14:57 +02:00
}
2023-06-14 17:52:43 +02:00
.tint(.red)
2023-06-13 17:14:57 +02:00
}
}
}
.navigationTitle("History")
.navigationBarTitleDisplayMode(.large)
2025-01-31 13:06:11 +01:00
.toolbar {
ToolbarItem {
Button(action: { showExportSheet = true }) {
Label("Export", systemSymbol: .arrowUpDoc)
}
}
}
.sheet(isPresented: $showExportSheet) {
ExportSheet(isPresented: $showExportSheet)
}
}
}
2023-06-13 17:14:57 +02:00
private func deleteRow(for dateIndex: Int) {
storage.removeMeasurements(for: dateIndex)
}
}
struct HistoryList_Previews: PreviewProvider {
static var previews: some View {
HistoryList()
.environmentObject(PersistentStorage(lastMeasurements: TemperatureMeasurement.mockData))
}
}