82 lines
2.6 KiB
Swift
82 lines
2.6 KiB
Swift
import SwiftUI
|
|
|
|
struct WorkoutSummaryView: View {
|
|
@ObservedObject var workoutManager: WorkoutManager
|
|
|
|
var body: some View {
|
|
if let summary = workoutManager.workoutSummary {
|
|
List {
|
|
Section {
|
|
VStack(spacing: 8) {
|
|
Image(systemName: "checkmark.circle.fill")
|
|
.font(.system(size: 40))
|
|
.foregroundColor(.green)
|
|
|
|
Text("Workout complete!")
|
|
.font(.headline)
|
|
.foregroundColor(.green)
|
|
}
|
|
.frame(maxWidth: .infinity)
|
|
.padding(.vertical, 8)
|
|
}
|
|
|
|
Section("Stats") {
|
|
HStack {
|
|
Text("Total time")
|
|
.foregroundColor(.secondary)
|
|
Spacer()
|
|
Text(formatTime(summary.duration))
|
|
.monospacedDigit()
|
|
}
|
|
|
|
HStack {
|
|
Text("Distance")
|
|
.foregroundColor(.secondary)
|
|
Spacer()
|
|
Text("\(summary.totalDistance)m")
|
|
.monospacedDigit()
|
|
}
|
|
|
|
HStack {
|
|
Text("Calories")
|
|
.foregroundColor(.secondary)
|
|
Spacer()
|
|
Text("\(summary.calories)kcal")
|
|
.monospacedDigit()
|
|
}
|
|
|
|
HStack {
|
|
Text("Laps")
|
|
.foregroundColor(.secondary)
|
|
Spacer()
|
|
Text("\(summary.laps.count)")
|
|
.monospacedDigit()
|
|
}
|
|
}
|
|
|
|
Section {
|
|
Button {
|
|
workoutManager.dismissSummary()
|
|
} label: {
|
|
HStack {
|
|
Spacer()
|
|
Text("OK")
|
|
.font(.headline)
|
|
Spacer()
|
|
}
|
|
}
|
|
.buttonStyle(.borderedProminent)
|
|
.tint(.cyan)
|
|
}
|
|
}
|
|
.listStyle(.automatic)
|
|
}
|
|
}
|
|
|
|
private func formatTime(_ seconds: TimeInterval) -> String {
|
|
let mins = Int(seconds) / 60
|
|
let secs = Int(seconds) % 60
|
|
return String(format: "%d:%02d", mins, secs)
|
|
}
|
|
}
|