WIP
This commit is contained in:
@@ -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 */,
|
||||||
|
|||||||
@@ -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()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -198,5 +198,15 @@ struct AddExerciseView: View {
|
|||||||
return hasCorrectMuscles && hasCorrectEquipment
|
return hasCorrectMuscles && hasCorrectEquipment
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func setupFake() {
|
||||||
|
DataStore.shared.setupFakeData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct AddExerciseView_Previews: PreviewProvider {
|
||||||
|
static var previews: some View {
|
||||||
|
AddExerciseView(selectedWorkout: { _ in })
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)")
|
}
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user