This commit is contained in:
Trey t
2023-06-19 19:45:15 -05:00
parent e6cc60b064
commit 6761fefc21
6 changed files with 248 additions and 59 deletions

View File

@@ -10,10 +10,6 @@ import SwiftUI
import Combine
struct AddExerciseView: View {
@State var exercises: [ExerciseExercise]?
@State var equipment: [Equipment]?
@State var muscles: [Muscle]?
@State var selectedMuscles = [Muscle]()
@State var selectedEquipment = [Equipment]()
@State var filteredExercises = [ExerciseExercise]()
@@ -27,7 +23,7 @@ struct AddExerciseView: View {
var body: some View {
VStack {
if let muscles = muscles {
if let muscles = DataStore.shared.allMuscles {
Button("toggle all", action: {
if self.selectedMuscles.count > 0 {
self.selectedMuscles.removeAll()
@@ -66,7 +62,7 @@ struct AddExerciseView: View {
}.frame(height: 100)
}
if let equipment = equipment {
if let equipment = DataStore.shared.allEquipment {
Button("toggle all", action: {
if self.selectedEquipment.count > 0 {
self.selectedEquipment.removeAll()
@@ -137,9 +133,14 @@ struct AddExerciseView: View {
}
}
.onAppear{
parseMuscle()
parseEquipment()
parseExercises()
guard let exercises = DataStore.shared.allExercise,
let muscles = DataStore.shared.allMuscles,
let equipment = DataStore.shared.allEquipment else {
return
}
selectedMuscles = muscles
selectedEquipment = equipment
filteredExercises = exercises
}
}
@@ -154,9 +155,9 @@ struct AddExerciseView: View {
return
}
guard let exercises = exercises,
let muscles = muscles,
let equipment = equipment else {
guard let exercises = DataStore.shared.allExercise,
let muscles = DataStore.shared.allMuscles,
let equipment = DataStore.shared.allEquipment else {
filteredExercises = [ExerciseExercise]()
return
}
@@ -192,52 +193,52 @@ struct AddExerciseView: View {
})
}
func parseExercises() {
if let filepath = Bundle.main.path(forResource: "Exercises", ofType: "json") {
do {
let data = try Data(NSData(contentsOfFile: filepath))
let workout = try JSONDecoder().decode([ExerciseExercise].self, from: data)
self.filteredExercises.append(contentsOf: workout)
self.exercises = workout
} catch {
print(error)
fatalError()
}
} else {
fatalError()
}
}
func parseEquipment() {
if let filepath = Bundle.main.path(forResource: "Equipment", ofType: "json") {
do {
let data = try Data(NSData(contentsOfFile: filepath))
let workout = try JSONDecoder().decode([Equipment].self, from: data)
self.equipment = workout
self.selectedEquipment.append(contentsOf: workout)
} catch {
print(error)
fatalError()
}
} else {
fatalError()
}
}
func parseMuscle() {
if let filepath = Bundle.main.path(forResource: "AllMuscles", ofType: "json") {
do {
let data = try Data(NSData(contentsOfFile: filepath))
let workout = try JSONDecoder().decode([Muscle].self, from: data)
self.muscles = workout
self.selectedMuscles.append(contentsOf: workout)
} catch {
print(error)
fatalError()
}
} else {
fatalError()
}
}
// func parseExercises() {
// if let filepath = Bundle.main.path(forResource: "Exercises", ofType: "json") {
// do {
// let data = try Data(NSData(contentsOfFile: filepath))
// let workout = try JSONDecoder().decode([ExerciseExercise].self, from: data)
// self.filteredExercises.append(contentsOf: workout)
// self.exercises = workout
// } catch {
// print(error)
// fatalError()
// }
// } else {
// fatalError()
// }
// }
//
// func parseEquipment() {
// if let filepath = Bundle.main.path(forResource: "Equipment", ofType: "json") {
// do {
// let data = try Data(NSData(contentsOfFile: filepath))
// let workout = try JSONDecoder().decode([Equipment].self, from: data)
// self.equipment = workout
// self.selectedEquipment.append(contentsOf: workout)
// } catch {
// print(error)
// fatalError()
// }
// } else {
// fatalError()
// }
// }
//
// func parseMuscle() {
// if let filepath = Bundle.main.path(forResource: "AllMuscles", ofType: "json") {
// do {
// let data = try Data(NSData(contentsOfFile: filepath))
// let workout = try JSONDecoder().decode([Muscle].self, from: data)
// self.muscles = workout
// self.selectedMuscles.append(contentsOf: workout)
// } catch {
// print(error)
// fatalError()
// }
// } else {
// fatalError()
// }
// }
}