// // MuscleGroupsListView.swift // Workouts // // Created by rzen on 7/13/25 at 12:14 PM. // // Copyright 2025 Rouslan Zenetl. All Rights Reserved. // import SwiftUI import SwiftData struct MuscleGroupsListView: View { @Environment(\.modelContext) private var modelContext @Query(sort: [SortDescriptor(\MuscleGroup.name)]) var items: [MuscleGroup] @State var itemToEdit: MuscleGroup? = nil @State var itemToDelete: MuscleGroup? = nil var body: some View { NavigationStack { Form { List { ForEach (items) { item in ListItem(title: item.name, count: item.muscles?.count) .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) } } } .navigationTitle("Muscle Groups") } .sheet(item: $itemToEdit) {item in MuscleGroupAddEditView(model: item) } .confirmationDialog( "Delete?", isPresented: Binding( get: { itemToDelete != nil }, set: { if !$0 { itemToDelete = nil } } ), titleVisibility: .visible ) { Button("Delete", role: .destructive) { if let itemToDelete = itemToDelete { modelContext.delete(itemToDelete) try? modelContext.save() self.itemToDelete = nil } } Button("Cancel", role: .cancel) { itemToDelete = nil } } message: { Text("Are you sure you want to delete \(itemToDelete?.name ?? "this item")?") } } } }