retain order of the exercises during persistence process

This commit is contained in:
Felix Förtsch
2024-08-30 16:01:38 +02:00
parent 4afc656374
commit 22b0ba372e
10 changed files with 244 additions and 135 deletions
+16 -10
View File
@@ -39,15 +39,17 @@ struct WorkoutLibrary: View {
}
.onDelete(perform: deleteWorkout)
if isAddingWorkout {
// TODO: On tap-out of the text field, it should lose focus
TextField("New Workout", text: $newWorkoutName, onCommit: {
newWorkout.name = newWorkoutName
saveWorkout(workout: newWorkout)
isAddingWorkout = false
})
.textInputAutocapitalization(.words)
.focused($isInputFieldFocused)
}
Button(action: {
if isAddingWorkout {
saveWorkout(workout: newWorkout)
}
addWorkout()
}) {
HStack {
@@ -59,11 +61,11 @@ struct WorkoutLibrary: View {
}
.searchable(text: $searchText)
}
}
.navigationBarTitle("Workouts")
.toolbar {
ToolbarItem() {
EditButton()
.navigationBarTitle("Workouts")
.toolbar {
ToolbarItem() {
EditButton()
}
}
}
}
@@ -79,9 +81,13 @@ struct WorkoutLibrary: View {
// TODO: Brauchen wir das?
private func saveWorkout(workout: Workout) {
if !workout.name.isEmpty {
modelContext.insert(workout)
try? modelContext.save()
withAnimation {
newWorkout.name = newWorkoutName
if !workout.name.isEmpty {
modelContext.insert(workout)
try? modelContext.save()
}
isAddingWorkout = false
}
}