// // MainView.swift // Werkout_ios // // Created by Trey Tartt on 6/14/23. // import SwiftUI struct WorkoutDetailView: View { @ObservedObject var viewModel: WorkoutDetailViewModel @EnvironmentObject var bridgeModule: BridgeModule @State var selectedIdx = -1 { didSet { runItemAt(idx: selectedIdx) } } var body: some View { VStack { List() { ForEach(viewModel.workout.exercisesSortedByCreated_at.indices, id: \.self) { i in let obj = viewModel.workout.exercisesSortedByCreated_at[i] Text(obj.exercise.name ?? "") .onTapGesture { selectedIdx = i } } } if let duration = bridgeModule.currentExercise?.duration { HStack { ProgressView(value: Float(bridgeModule.timeLeft), total: Float(duration)) Text("\(bridgeModule.timeLeft)") }.padding(16) } } .onAppear{ bridgeModule.timerCompleted = { selectedIdx += 1 } } } func runItemAt(idx: Int) { if idx < viewModel.workout.exercises.count { let exercise = viewModel.workout.exercises[idx] bridgeModule.updateCurrent(exercise: exercise) bridgeModule.currentExerciseIdx = idx } else { workoutComplete() } } private func workoutComplete() { } } struct WorkoutDetailView_Previews: PreviewProvider { static var previews: some View { WorkoutDetailView(viewModel: WorkoutDetailViewModel(workout: PreviewWorkout.workout())) } }