This commit is contained in:
Trey t
2023-06-25 16:53:38 -05:00
parent ad73c18bdc
commit f97faffb62
7 changed files with 42 additions and 15 deletions

View File

@@ -196,7 +196,6 @@
1CF65A802A412AA30042FFBD /* DataStore.swift */, 1CF65A802A412AA30042FFBD /* DataStore.swift */,
1CF65AB92A4894430042FFBD /* UserStore.swift */, 1CF65AB92A4894430042FFBD /* UserStore.swift */,
1CF65A3F2A3973840042FFBD /* Views */, 1CF65A3F2A3973840042FFBD /* Views */,
1CF65A8B2A44B7590042FFBD /* AccountView */,
1CF65A3E2A39737D0042FFBD /* APIModels */, 1CF65A3E2A39737D0042FFBD /* APIModels */,
1CF65A3D2A3973760042FFBD /* Network */, 1CF65A3D2A3973760042FFBD /* Network */,
1CF65A2E2A3972850042FFBD /* Assets.xcassets */, 1CF65A2E2A3972850042FFBD /* Assets.xcassets */,
@@ -245,6 +244,7 @@
children = ( children = (
1CF65A2C2A3972840042FFBD /* MainView.swift */, 1CF65A2C2A3972840042FFBD /* MainView.swift */,
1CF65A3B2A3972CE0042FFBD /* ExternalWorkoutDetailView.swift */, 1CF65A3B2A3972CE0042FFBD /* ExternalWorkoutDetailView.swift */,
1CF65A8B2A44B7590042FFBD /* AccountView */,
1CF65A8A2A44B74D0042FFBD /* AddExercise */, 1CF65A8A2A44B74D0042FFBD /* AddExercise */,
1CF65A892A44B7390042FFBD /* AllWorkouts */, 1CF65A892A44B7390042FFBD /* AllWorkouts */,
1CF65A8C2A44B7680042FFBD /* CompletedWorkout */, 1CF65A8C2A44B7680042FFBD /* CompletedWorkout */,

View File

@@ -82,4 +82,12 @@ class DataStore {
self.fetchAllDataQueue.leave() self.fetchAllDataQueue.leave()
}) })
} }
func setupFakeData() {
allWorkouts = PreviewWorkout.allWorkouts()
allMuscles = PreviewWorkout.parseMuscle()
allEquipment = PreviewWorkout.parseEquipment()
allExercise = PreviewWorkout.parseExercises()
}
} }

View File

@@ -199,4 +199,14 @@ struct AddExerciseView: View {
} }
}) })
} }
func setupFake() {
DataStore.shared.setupFakeData()
}
}
struct AddExerciseView_Previews: PreviewProvider {
static var previews: some View {
AddExerciseView(selectedWorkout: { _ in })
}
} }

View File

@@ -75,6 +75,10 @@ struct AllWorkoutsView: View {
self.needsUpdating = true self.needsUpdating = true
} }
} }
}
struct AllWorkoutsView_Previews: PreviewProvider {
static var previews: some View {
AllWorkoutsView(workouts: PreviewWorkout.allWorkouts())
}
} }

View File

@@ -244,7 +244,8 @@ struct CountdownView: View {
} }
struct WorkoutDetailView_Previews: PreviewProvider { struct WorkoutDetailView_Previews: PreviewProvider {
static let workoutDetail = PreviewWorkout.workout()
static var previews: some View { static var previews: some View {
WorkoutDetailView(viewModel: WorkoutDetailViewModel(workout: PreviewWorkout.workout())) WorkoutDetailView(viewModel: WorkoutDetailViewModel(workout: WorkoutDetailView_Previews.workoutDetail, status: .showWorkout(WorkoutDetailView_Previews.workoutDetail)))
} }
} }

View File

@@ -15,18 +15,22 @@ class WorkoutDetailViewModel: ObservableObject {
} }
@Published var status: WorkoutDetailViewModelStatus @Published var status: WorkoutDetailViewModelStatus
init(workout: Workout) { init(workout: Workout, status: WorkoutDetailViewModelStatus? = nil) {
self.status = .loading self.status = .loading
WorkoutDetailFetchable(workoutID: workout.id).fetch(completion: { result in if let passedStatus = status {
switch result { self.status = passedStatus
case .success(let model): } else {
DispatchQueue.main.async { WorkoutDetailFetchable(workoutID: workout.id).fetch(completion: { result in
self.status = .showWorkout(model) 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)") }
}
})
} }
} }