Files
SwimBuddy/targets/watch/Views/WorkoutSummaryView.swift
T

87 lines
2.8 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)
.listRowBackground(.clear)
}
Section("Stats") {
HStack {
Text("Total time")
.foregroundColor(.secondary)
Spacer()
Text(formatTime(summary.duration))
.monospacedDigit()
}
.listRowBackground(.clear)
HStack {
Text("Distance")
.foregroundColor(.secondary)
Spacer()
Text("\(summary.totalDistance)m")
.monospacedDigit()
}
.listRowBackground(.clear)
HStack {
Text("Calories")
.foregroundColor(.secondary)
Spacer()
Text("\(summary.calories)kcal")
.monospacedDigit()
}
.listRowBackground(.clear)
HStack {
Text("Laps")
.foregroundColor(.secondary)
Spacer()
Text("\(summary.laps.count)")
.monospacedDigit()
}
.listRowBackground(.clear)
}
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)
}
}