Show all points for day
This commit is contained in:
38
TempTrack/Views/DayView.swift
Normal file
38
TempTrack/Views/DayView.swift
Normal file
@ -0,0 +1,38 @@
|
||||
import SwiftUI
|
||||
|
||||
private let df: DateFormatter = {
|
||||
let df = DateFormatter()
|
||||
df.dateStyle = .short
|
||||
df.timeStyle = .medium
|
||||
return df
|
||||
}()
|
||||
|
||||
struct DayView: View {
|
||||
|
||||
let dateIndex: Int
|
||||
|
||||
@EnvironmentObject
|
||||
var storage: TemperatureStorage
|
||||
|
||||
var entries: [TemperatureMeasurement] {
|
||||
storage.loadMeasurements(for: dateIndex)
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
TemperatureDayOverview(points: entries)
|
||||
List(entries) { entry in
|
||||
HStack {
|
||||
Text(df.string(from: entry.date))
|
||||
Spacer()
|
||||
Text(entry.displayText)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct DayView_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
DayView(dateIndex: Date.now.dateIndex)
|
||||
.environmentObject(TemperatureStorage.mock)
|
||||
}
|
||||
}
|
@ -9,16 +9,17 @@ struct HistoryList: View {
|
||||
NavigationView {
|
||||
List(storage.dailyMeasurementCounts) { day in
|
||||
NavigationLink(destination: {
|
||||
TemperatureDayOverview(storage: storage, dateIndex: day.dateIndex)
|
||||
DayView(dateIndex: day.dateIndex)
|
||||
.environmentObject(storage)
|
||||
}) {
|
||||
HistoryListRow(entry: day)
|
||||
.swipeActions(edge: .trailing, allowsFullSwipe: true) {
|
||||
Button {
|
||||
deleteRow(for: day.dateIndex)
|
||||
} label: {
|
||||
Label("Delete", systemSymbol: .pencil)
|
||||
Label("Delete", systemSymbol: .trash)
|
||||
}
|
||||
.tint(.purple)
|
||||
.tint(.red)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,17 +1,17 @@
|
||||
import SwiftUI
|
||||
|
||||
private let df: DateFormatter = {
|
||||
let df = DateFormatter()
|
||||
df.dateStyle = .short
|
||||
df.timeStyle = .medium
|
||||
return df
|
||||
}()
|
||||
|
||||
struct LogView: View {
|
||||
|
||||
@EnvironmentObject
|
||||
var log: Log
|
||||
|
||||
private let df: DateFormatter = {
|
||||
let df = DateFormatter()
|
||||
df.dateStyle = .short
|
||||
df.timeStyle = .medium
|
||||
return df
|
||||
}()
|
||||
|
||||
var body: some View {
|
||||
List(log.logEntries) { entry in
|
||||
VStack(alignment: .leading) {
|
||||
|
@ -2,14 +2,14 @@ import SwiftUI
|
||||
import Charts
|
||||
|
||||
struct TemperatureDayOverview: View {
|
||||
|
||||
let storage: TemperatureStorage
|
||||
|
||||
@State
|
||||
var points: [TemperatureMeasurement] = []
|
||||
|
||||
let points: [TemperatureMeasurement]
|
||||
|
||||
init(points: [TemperatureMeasurement]) {
|
||||
self.points = points
|
||||
}
|
||||
|
||||
init(storage: TemperatureStorage, dateIndex: Int) {
|
||||
self.storage = storage
|
||||
let points = storage.loadMeasurements(for: dateIndex)
|
||||
self.points = points
|
||||
update()
|
||||
|
@ -34,7 +34,7 @@ struct TemperatureHistoryChart: View {
|
||||
.chartXAxis(.hidden)
|
||||
.chartLegend(.hidden)
|
||||
.chartYAxis {
|
||||
AxisMarks(position: .trailing, values: .automatic) { value in
|
||||
AxisMarks(position: .trailing, values: .stride(by: 10)) { value in
|
||||
AxisValueLabel(multiLabelAlignment: .trailing) {
|
||||
if let intValue = value.as(Int.self) {
|
||||
Text("\(intValue)°")
|
||||
|
Reference in New Issue
Block a user