This commit is contained in:
Trey t
2023-07-28 11:15:13 -05:00
parent 2dcd260887
commit 1997abeff6
13 changed files with 264 additions and 101 deletions

View File

@@ -24,9 +24,10 @@ enum MainViewTypes: Int, CaseIterable {
}
struct AllWorkoutsView: View {
@State var isUpdating = false
@State var workouts: [Workout]?
@State var uniqueWorkoutUsers: [RegisteredUser]?
var bridgeModule = BridgeModule.shared
@State public var needsUpdating: Bool = true
@@ -61,6 +62,7 @@ struct AllWorkoutsView: View {
selectedWorkout = bridgeModule.currentExerciseInfo.workout
})
switch selectedSegment {
case .AllWorkout:
if isUpdating {
@@ -68,7 +70,9 @@ struct AllWorkoutsView: View {
.progressViewStyle(.circular)
}
AllWorkoutsListView(workouts: workouts, selectedWorkout: { workout in
AllWorkoutsListView(uniqueWorkoutUsers: $uniqueWorkoutUsers,
workouts: workouts,
selectedWorkout: { workout in
selectedWorkout = workout
}, refresh: {
self.needsUpdating = true
@@ -155,21 +159,19 @@ struct AllWorkoutsView: View {
if needsUpdating {
self.isUpdating = true
dataStore.fetchAllData()
AllWorkoutFetchable().fetch(completion: { result in
needsUpdating = false
switch result {
case .success(let model):
DispatchQueue.main.async {
self.workouts = model
self.isUpdating = false
}
case .failure(_):
DispatchQueue.main.async {
self.isUpdating = false
dataStore.fetchAllData(completion: {
DispatchQueue.main.async {
guard let allWorkouts = dataStore.allWorkouts else {
return
}
self.workouts = allWorkouts.sorted(by: {
$0.createdAt ?? Date() < $1.createdAt ?? Date()
})
self.isUpdating = false
self.uniqueWorkoutUsers = dataStore.workoutsUniqueUsers
}
self.isUpdating = false
})
}
} else {