// // SplitsListView.swift // Workouts // // Created by rzen on 7/13/25 at 10:27 AM. // // Copyright 2025 Rouslan Zenetl. All Rights Reserved. // import SwiftUI import SwiftData struct SplitsListView: View { @Environment(\.dismiss) private var dismiss @Environment(\.modelContext) private var modelContext @Query(sort: [SortDescriptor(\Split.name)]) var items: [Split] @State var itemToEdit: Split? = nil @State var itemToDelete: Split? = nil private func save () { try? modelContext.save() } var body: some View { NavigationStack { Form { List { ForEach (items) { item in ListItem( title: item.name, count: item.exercises?.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 SplitAddEditView(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")?") } } } }