add apple tv app
This commit is contained in:
93
iphone/Werkout_ios/Views/WorkoutHistoryView.swift
Normal file
93
iphone/Werkout_ios/Views/WorkoutHistoryView.swift
Normal file
@@ -0,0 +1,93 @@
|
||||
//
|
||||
// WorkoutHistoryView.swift
|
||||
// Werkout_ios
|
||||
//
|
||||
// Created by Trey Tartt on 6/26/23.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct WorkoutHistoryView: View {
|
||||
enum DifficltyString: Int {
|
||||
case easy = 1
|
||||
case moderate
|
||||
case average
|
||||
case hard
|
||||
case death
|
||||
|
||||
var stringValue: String {
|
||||
switch self {
|
||||
|
||||
case .easy:
|
||||
return "Easy"
|
||||
case .moderate:
|
||||
return "Moderate"
|
||||
case .average:
|
||||
return "Average"
|
||||
case .hard:
|
||||
return "Hard"
|
||||
case .death:
|
||||
return "Death"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let completedWorkouts: [CompletedWorkout]
|
||||
|
||||
@State private var selectedPlannedWorkout: Workout?
|
||||
|
||||
var body: some View {
|
||||
List {
|
||||
ForEach(completedWorkouts, id:\.self.id) { completedWorkout in
|
||||
HStack {
|
||||
VStack {
|
||||
if let date = completedWorkout.workoutStartTime.dateFromServerDate {
|
||||
Text(DateFormatter().shortMonthSymbols[date.get(.month) - 1])
|
||||
|
||||
Text("\(date.get(.day))")
|
||||
Text("\(date.get(.hour))")
|
||||
}
|
||||
}
|
||||
|
||||
VStack(alignment: .leading) {
|
||||
Text(completedWorkout.workout.name)
|
||||
.font(.title3)
|
||||
|
||||
if let desc = completedWorkout.workout.description {
|
||||
Text(desc)
|
||||
.font(.footnote)
|
||||
}
|
||||
|
||||
Divider()
|
||||
|
||||
if let difficulty = completedWorkout.difficulty,
|
||||
let string = DifficltyString.init(rawValue: difficulty)?.stringValue {
|
||||
Text(string)
|
||||
}
|
||||
|
||||
if let notes = completedWorkout.notes {
|
||||
Text(notes)
|
||||
}
|
||||
}
|
||||
.padding(.leading)
|
||||
.contentShape(Rectangle())
|
||||
.onTapGesture {
|
||||
selectedPlannedWorkout = completedWorkout.workout
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
.sheet(item: $selectedPlannedWorkout) { item in
|
||||
let viewModel = WorkoutDetailViewModel(workout: item, isPreview: true)
|
||||
WorkoutDetailView(viewModel: viewModel)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct WorkoutHistoryView_Previews: PreviewProvider {
|
||||
static let fakeHistory = PreviewData.parseCompletedWorkouts()
|
||||
static var previews: some View {
|
||||
WorkoutHistoryView(completedWorkouts: fakeHistory)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user