From e16a127579bee5d67e3f32bb33629bdf58fc3e02 Mon Sep 17 00:00:00 2001 From: Trey t Date: Mon, 26 Jun 2023 09:13:21 -0500 Subject: [PATCH] wip --- Werkout_ios/APIModels/Exercise.swift | 2 +- .../Views/AddExercise/AddExerciseView.swift | 25 +++++++++++-------- .../CreateWorkout/CreateWorkoutMainView.swift | 2 +- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/Werkout_ios/APIModels/Exercise.swift b/Werkout_ios/APIModels/Exercise.swift index 8159dae..8257ee6 100644 --- a/Werkout_ios/APIModels/Exercise.swift +++ b/Werkout_ios/APIModels/Exercise.swift @@ -32,7 +32,7 @@ struct ExerciseElement: Codable { } } -struct ExerciseExercise: Codable, Hashable { +struct ExerciseExercise: Codable, Hashable, Identifiable { static func == (lhs: ExerciseExercise, rhs: ExerciseExercise) -> Bool { lhs.id == rhs.id } diff --git a/Werkout_ios/Views/AddExercise/AddExerciseView.swift b/Werkout_ios/Views/AddExercise/AddExerciseView.swift index 0ac5201..2788305 100644 --- a/Werkout_ios/Views/AddExercise/AddExerciseView.swift +++ b/Werkout_ios/Views/AddExercise/AddExerciseView.swift @@ -21,10 +21,11 @@ struct AddExerciseView: View { @StateObject var bridgeModule = BridgeModule.shared @Environment(\.dismiss) var dismiss - var selectedWorkout: ((ExerciseExercise) -> Void) + var selectedExercise: ((ExerciseExercise) -> Void) @State var createWorkoutItemPickerViewModel: CreateWorkoutItemPickerViewModel? @State var createWorkoutItemPickerViewType: CreateWorkoutItemPickerViewType? @State var searchString: String = "" + @State var videoExercise: ExerciseExercise? var body: some View { VStack { @@ -59,6 +60,9 @@ struct AddExerciseView: View { selectedEquipment = equipment filteredExercises = exercises } + .sheet(item: $videoExercise) { exercise in + VideoPlayerView(currentExercise: exercise) + } .sheet(item: $createWorkoutItemPickerViewModel) { item in CreateWorkoutItemPickerView(viewModel: item, completed: { selectedids in if let viewType = createWorkoutItemPickerViewType { @@ -193,30 +197,31 @@ struct AddExerciseView: View { func exerciseView() -> some View { List() { ForEach(filteredExercises.indices, id: \.self) { i in - let obj = filteredExercises[i] - if searchString.isEmpty || obj.name.lowercased().contains(searchString.lowercased()) { + let exercise = filteredExercises[i] + if searchString.isEmpty || exercise.name.lowercased().contains(searchString.lowercased()) { HStack { VStack { - Text(obj.name) + Text(exercise.name) .frame(maxWidth: .infinity, alignment: .leading) - if obj.side.count > 0 { - Text(obj.side) + if exercise.side.count > 0 { + Text(exercise.side) .font(.footnote) .frame(maxWidth: .infinity, alignment: .leading) } - Text(obj.equipmentRequired) + Text(exercise.equipmentRequired) .font(.footnote) .frame(maxWidth: .infinity, alignment: .leading) - Text(obj.muscleGroups) + Text(exercise.muscleGroups) .font(.footnote) .frame(maxWidth: .infinity, alignment: .leading) } .contentShape(Rectangle()) .onTapGesture { - selectedWorkout(obj) + selectedExercise(exercise) dismiss() } Button(action: { + videoExercise = exercise }) { Image(systemName: "video.fill") } @@ -233,6 +238,6 @@ struct AddExerciseView: View { struct AddExerciseView_Previews: PreviewProvider { static var previews: some View { - AddExerciseView(selectedWorkout: { _ in }) + AddExerciseView(selectedExercise: { _ in }) } } diff --git a/Werkout_ios/Views/CreateWorkout/CreateWorkoutMainView.swift b/Werkout_ios/Views/CreateWorkout/CreateWorkoutMainView.swift index 48acc92..82737a6 100644 --- a/Werkout_ios/Views/CreateWorkout/CreateWorkoutMainView.swift +++ b/Werkout_ios/Views/CreateWorkout/CreateWorkoutMainView.swift @@ -90,7 +90,7 @@ struct CreateWorkoutMainView: View { .padding(.bottom) } .sheet(isPresented: $showAddExercise) { - AddExerciseView(selectedWorkout: { exercise in + AddExerciseView(selectedExercise: { exercise in let workoutExercise = CreateWorkoutExercise(exercise: exercise) selectedCreateWorkoutSuperSet?.exercises.append(workoutExercise) viewModel.objectWillChange.send()