From f97faffb6272982dcc9d95155eb4efc7e6244b94 Mon Sep 17 00:00:00 2001 From: Trey t Date: Sun, 25 Jun 2023 16:53:38 -0500 Subject: [PATCH] WIP --- Werkout_ios.xcodeproj/project.pbxproj | 2 +- Werkout_ios/DataStore.swift | 8 +++++++ .../{ => Views}/AccountView/AccountView.swift | 0 .../Views/AddExercise/AddExerciseView.swift | 12 +++++++++- .../Views/AllWorkouts/AllWorkoutsView.swift | 8 +++++-- .../WorkoutDetail/WorkoutDetailView.swift | 3 ++- .../WorkoutDetailViewModel.swift | 24 +++++++++++-------- 7 files changed, 42 insertions(+), 15 deletions(-) rename Werkout_ios/{ => Views}/AccountView/AccountView.swift (100%) diff --git a/Werkout_ios.xcodeproj/project.pbxproj b/Werkout_ios.xcodeproj/project.pbxproj index f293d92..da03d13 100644 --- a/Werkout_ios.xcodeproj/project.pbxproj +++ b/Werkout_ios.xcodeproj/project.pbxproj @@ -196,7 +196,6 @@ 1CF65A802A412AA30042FFBD /* DataStore.swift */, 1CF65AB92A4894430042FFBD /* UserStore.swift */, 1CF65A3F2A3973840042FFBD /* Views */, - 1CF65A8B2A44B7590042FFBD /* AccountView */, 1CF65A3E2A39737D0042FFBD /* APIModels */, 1CF65A3D2A3973760042FFBD /* Network */, 1CF65A2E2A3972850042FFBD /* Assets.xcassets */, @@ -245,6 +244,7 @@ children = ( 1CF65A2C2A3972840042FFBD /* MainView.swift */, 1CF65A3B2A3972CE0042FFBD /* ExternalWorkoutDetailView.swift */, + 1CF65A8B2A44B7590042FFBD /* AccountView */, 1CF65A8A2A44B74D0042FFBD /* AddExercise */, 1CF65A892A44B7390042FFBD /* AllWorkouts */, 1CF65A8C2A44B7680042FFBD /* CompletedWorkout */, diff --git a/Werkout_ios/DataStore.swift b/Werkout_ios/DataStore.swift index 50c7f4a..f2b4754 100644 --- a/Werkout_ios/DataStore.swift +++ b/Werkout_ios/DataStore.swift @@ -82,4 +82,12 @@ class DataStore { self.fetchAllDataQueue.leave() }) } + + + func setupFakeData() { + allWorkouts = PreviewWorkout.allWorkouts() + allMuscles = PreviewWorkout.parseMuscle() + allEquipment = PreviewWorkout.parseEquipment() + allExercise = PreviewWorkout.parseExercises() + } } diff --git a/Werkout_ios/AccountView/AccountView.swift b/Werkout_ios/Views/AccountView/AccountView.swift similarity index 100% rename from Werkout_ios/AccountView/AccountView.swift rename to Werkout_ios/Views/AccountView/AccountView.swift diff --git a/Werkout_ios/Views/AddExercise/AddExerciseView.swift b/Werkout_ios/Views/AddExercise/AddExerciseView.swift index 572065f..cf98a7f 100644 --- a/Werkout_ios/Views/AddExercise/AddExerciseView.swift +++ b/Werkout_ios/Views/AddExercise/AddExerciseView.swift @@ -198,5 +198,15 @@ struct AddExerciseView: View { return hasCorrectMuscles && hasCorrectEquipment } }) - } + } + + func setupFake() { + DataStore.shared.setupFakeData() + } +} + +struct AddExerciseView_Previews: PreviewProvider { + static var previews: some View { + AddExerciseView(selectedWorkout: { _ in }) + } } diff --git a/Werkout_ios/Views/AllWorkouts/AllWorkoutsView.swift b/Werkout_ios/Views/AllWorkouts/AllWorkoutsView.swift index 104bcbe..078f147 100644 --- a/Werkout_ios/Views/AllWorkouts/AllWorkoutsView.swift +++ b/Werkout_ios/Views/AllWorkouts/AllWorkoutsView.swift @@ -75,6 +75,10 @@ struct AllWorkoutsView: View { self.needsUpdating = true } } - - +} + +struct AllWorkoutsView_Previews: PreviewProvider { + static var previews: some View { + AllWorkoutsView(workouts: PreviewWorkout.allWorkouts()) + } } diff --git a/Werkout_ios/Views/WorkoutDetail/WorkoutDetailView.swift b/Werkout_ios/Views/WorkoutDetail/WorkoutDetailView.swift index 1e46b42..3255810 100644 --- a/Werkout_ios/Views/WorkoutDetail/WorkoutDetailView.swift +++ b/Werkout_ios/Views/WorkoutDetail/WorkoutDetailView.swift @@ -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))) } } diff --git a/Werkout_ios/Views/WorkoutDetail/WorkoutDetailViewModel.swift b/Werkout_ios/Views/WorkoutDetail/WorkoutDetailViewModel.swift index 95205cd..ff2f801 100644 --- a/Werkout_ios/Views/WorkoutDetail/WorkoutDetailViewModel.swift +++ b/Werkout_ios/Views/WorkoutDetail/WorkoutDetailViewModel.swift @@ -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)") - } - }) + }) + } } }