TempTrack-iOS/TempTrack/Views/DayView.swift

73 lines
1.7 KiB
Swift
Raw Normal View History

2023-06-14 17:52:43 +02:00
import SwiftUI
2025-01-31 13:37:44 +01:00
import SFSafeSymbols
2023-06-14 17:52:43 +02:00
private let df: DateFormatter = {
let df = DateFormatter()
df.dateStyle = .short
df.timeStyle = .medium
return df
}()
private let dateFormatter: DateFormatter = {
let df = DateFormatter()
df.dateStyle = .medium
df.timeStyle = .none
return df
}()
2023-06-14 17:52:43 +02:00
struct DayView: View {
let dateIndex: Int
@EnvironmentObject
var storage: PersistentStorage
2023-06-14 17:52:43 +02:00
2025-01-31 13:37:44 +01:00
@State
private var showShareSheet = false
private let title: String
init(dateIndex: Int) {
self.dateIndex = dateIndex
self.title = Date(dateIndex: dateIndex)
.formatted(date: .abbreviated, time: .omitted)
}
2023-06-14 17:52:43 +02:00
var entries: [TemperatureMeasurement] {
storage.loadMeasurements(for: dateIndex)
}
var body: some View {
2025-01-31 13:37:44 +01:00
VStack {
TemperatureDayOverview(points: entries)
List(entries) { entry in
HStack {
Text(entry.date.formatted(date: .omitted, time: .standard))
Spacer()
Text(entry.displayText)
}
2023-06-14 17:52:43 +02:00
}
}
2025-01-31 13:37:44 +01:00
.navigationTitle(title)
.navigationBarTitleDisplayMode(.large)
.toolbar {
ToolbarItem {
Button(action: { showShareSheet = true }) {
Label("Export", systemSymbol: .arrowUpDoc)
}
}
}
.sheet(isPresented: $showShareSheet) {
ShareCsvSheet(isPresented: $showShareSheet,
measurements: entries)
}
2023-06-14 17:52:43 +02:00
}
}
struct DayView_Previews: PreviewProvider {
static var previews: some View {
DayView(dateIndex: Date.now.dateIndex)
.environmentObject(PersistentStorage.mock)
2023-06-14 17:52:43 +02:00
}
}