60 lines
1.8 KiB
Swift
60 lines
1.8 KiB
Swift
//
|
||
// MuscleAddEditView.swift
|
||
// Workouts
|
||
//
|
||
// Created by rzen on 7/13/25 at 11:55 AM.
|
||
//
|
||
// Copyright 2025 Rouslan Zenetl. All Rights Reserved.
|
||
//
|
||
|
||
import SwiftUI
|
||
import SwiftData
|
||
|
||
struct MuscleAddEditView: View {
|
||
@Environment(\.dismiss) private var dismiss
|
||
@Environment(\.modelContext) private var modelContext
|
||
|
||
@Query(sort: [SortDescriptor(\MuscleGroup.name)]) var muscleGroups: [MuscleGroup]
|
||
@Bindable var model: Muscle
|
||
|
||
var body: some View {
|
||
NavigationStack {
|
||
Form {
|
||
Section (header: Text("Name")) {
|
||
TextField("Name", text: $model.name)
|
||
.bold()
|
||
}
|
||
|
||
Section(header: Text("Muscle Group")) {
|
||
Picker("Muscle Group", selection: $model.muscleGroup) {
|
||
Text("Select a muscle group").tag(nil as MuscleGroup?)
|
||
ForEach(muscleGroups) { group in
|
||
Text(group.name).tag(group as MuscleGroup?)
|
||
}
|
||
}
|
||
}
|
||
|
||
Section(header: Text("Description")) {
|
||
TextEditor(text: $model.descr)
|
||
.frame(minHeight: 100)
|
||
.padding(.vertical, 4)
|
||
}
|
||
}
|
||
.toolbar {
|
||
ToolbarItem(placement: .navigationBarLeading) {
|
||
Button("Cancel") {
|
||
dismiss()
|
||
}
|
||
}
|
||
|
||
ToolbarItem(placement: .navigationBarTrailing) {
|
||
Button("Save") {
|
||
try? modelContext.save()
|
||
dismiss()
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|