import SwiftUI import SwiftData struct EntityAddEditView: View { @Environment(\.dismiss) private var dismiss @Environment(\.modelContext) private var modelContext @State var model: T private let content: (Binding) -> Content init(model: T, @ViewBuilder content: @escaping (Binding) -> Content) { _model = State(initialValue: model) self.content = content } var body: some View { NavigationStack { Form { content($model) } .toolbar { ToolbarItem(placement: .navigationBarLeading) { Button("Cancel") { dismiss() } } ToolbarItem(placement: .navigationBarTrailing) { Button("Save") { // If the model is not in a context, it's a new one. if model.modelContext == nil { modelContext.insert(model) } // The save is in a do-catch block to handle potential errors, // such as constraint violations. do { try modelContext.save() dismiss() } catch { // In a real app, you'd want to present this error to the user. print("Failed to save model: \(error.localizedDescription)") } } } } } } }