This commit is contained in:
2025-07-18 17:41:23 -04:00
parent 66f257609f
commit 34942bfc48
9 changed files with 337 additions and 111 deletions

View File

@ -8,6 +8,7 @@
//
import SwiftUI
import SwiftData
struct SplitExercisesListView: View {
@Environment(\.modelContext) private var modelContext
@ -18,6 +19,7 @@ struct SplitExercisesListView: View {
@State private var showingAddSheet: Bool = false
@State private var itemToEdit: SplitExerciseAssignment? = nil
@State private var itemToDelete: SplitExerciseAssignment? = nil
@State private var createdWorkout: Workout? = nil
var body: some View {
NavigationStack {
@ -67,24 +69,59 @@ struct SplitExercisesListView: View {
.navigationTitle("\(model.name)")
}
.toolbar {
ToolbarItem(placement: .navigationBarTrailing) {
Button(action: { showingAddSheet.toggle() }) {
Image(systemName: "plus")
ToolbarItem(placement: .primaryAction) {
Button("Start This Split") {
let split = model
let workout = Workout(start: Date(), split: split)
modelContext.insert(workout)
if let exercises = split.exercises {
for assignment in exercises {
let workoutLog = WorkoutLog(
workout: workout,
exerciseName: assignment.exerciseName,
date: Date(),
order: assignment.order,
sets: assignment.sets,
reps: assignment.reps,
weight: assignment.weight
)
modelContext.insert(workoutLog)
}
}
try? modelContext.save()
// Set the created workout to trigger navigation
createdWorkout = workout
}
}
}
.sheet (isPresented: $showingAddSheet) {
ExercisePickerView { exerciseName in
itemToEdit = SplitExerciseAssignment(
split: model,
exerciseName: exerciseName,
order: 0,
sets: 3,
reps: 10,
weight: 40
)
}
}
.navigationDestination(item: $createdWorkout, destination: { workout in
WorkoutLogView(workout: workout)
})
// .sheet(item: $createdWorkout) { workout in
// NavigationStack {
// WorkoutLogView(workout: workout)
// }
// }
// .toolbar {
// ToolbarItem(placement: .navigationBarTrailing) {
// Button(action: { showingAddSheet.toggle() }) {
// Image(systemName: "plus")
// }
// }
// }
// .sheet (isPresented: $showingAddSheet) {
// ExercisePickerView { exerciseName in
// itemToEdit = SplitExerciseAssignment(
// split: model,
// exerciseName: exerciseName,
// order: 0,
// sets: 3,
// reps: 10,
// weight: 40
// )
// }
// }
.sheet(item: $itemToEdit) { item in
SplitExerciseAssignmentAddEditView(model: item)
}