WIP
This commit is contained in:
@@ -244,7 +244,8 @@ struct CountdownView: View {
|
||||
}
|
||||
|
||||
struct WorkoutDetailView_Previews: PreviewProvider {
|
||||
static let workoutDetail = PreviewWorkout.workout()
|
||||
static var previews: some View {
|
||||
WorkoutDetailView(viewModel: WorkoutDetailViewModel(workout: PreviewWorkout.workout()))
|
||||
WorkoutDetailView(viewModel: WorkoutDetailViewModel(workout: WorkoutDetailView_Previews.workoutDetail, status: .showWorkout(WorkoutDetailView_Previews.workoutDetail)))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,18 +15,22 @@ class WorkoutDetailViewModel: ObservableObject {
|
||||
}
|
||||
@Published var status: WorkoutDetailViewModelStatus
|
||||
|
||||
init(workout: Workout) {
|
||||
init(workout: Workout, status: WorkoutDetailViewModelStatus? = nil) {
|
||||
self.status = .loading
|
||||
|
||||
WorkoutDetailFetchable(workoutID: workout.id).fetch(completion: { result in
|
||||
switch result {
|
||||
case .success(let model):
|
||||
DispatchQueue.main.async {
|
||||
self.status = .showWorkout(model)
|
||||
if let passedStatus = status {
|
||||
self.status = passedStatus
|
||||
} else {
|
||||
WorkoutDetailFetchable(workoutID: workout.id).fetch(completion: { result in
|
||||
switch result {
|
||||
case .success(let model):
|
||||
DispatchQueue.main.async {
|
||||
self.status = .showWorkout(model)
|
||||
}
|
||||
case .failure(let failure):
|
||||
fatalError("failed \(failure.localizedDescription)")
|
||||
}
|
||||
case .failure(let failure):
|
||||
fatalError("failed \(failure.localizedDescription)")
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user