This commit is contained in:
Trey t
2023-06-26 09:13:21 -05:00
parent b64ab4de13
commit e16a127579
3 changed files with 17 additions and 12 deletions

View File

@@ -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
}

View File

@@ -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 })
}
}

View File

@@ -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()