This commit is contained in:
2025-07-13 17:51:52 -04:00
parent 6cd44579e2
commit d4514805e9
33 changed files with 1295 additions and 80 deletions

View File

@ -0,0 +1,78 @@
import SwiftUI
struct SplitAddEditView: View {
@Environment(\.dismiss) private var dismiss
@Environment(\.modelContext) private var modelContext
@Bindable var model: Split
@State var itemToEdit: SplitExerciseAssignment? = nil
@State var itemToDelete: SplitExerciseAssignment? = nil
var body: some View {
NavigationStack {
Form {
Section (header: Text("Name")) {
TextField("Name", text: $model.name)
.bold()
}
Section(header: Text("Description")) {
TextEditor(text: $model.intro)
.frame(minHeight: 100)
.padding(.vertical, 4)
}
Section(header: Text("Exercises")) {
let item = model
if let assignments = item.exercises, !assignments.isEmpty {
ForEach(assignments, id: \.id) { item in
List {
ListItem(
title: item.exercise?.name ?? "Unnamed",
subtitle: "\(item.sets) × \(item.reps) @ \(item.weight) lbs"
)
.swipeActions(edge: .trailing, allowsFullSwipe: false) {
Button (role: .destructive) {
itemToDelete = item
} label: {
Label("Delete", systemImage: "trash")
}
Button {
itemToEdit = item
} label: {
Label("Edit", systemImage: "pencil")
}
.tint(.indigo)
}
}
}
} else {
Text("No exercises added")
.foregroundColor(.secondary)
}
Button(action: {
}) {
Label("Add Exercise", systemImage: "plus.circle")
}
}
}
.toolbar {
ToolbarItem(placement: .navigationBarLeading) {
Button("Cancel") {
dismiss()
}
}
ToolbarItem(placement: .navigationBarTrailing) {
Button("Save") {
try? modelContext.save()
dismiss()
}
}
}
}
}
}