Files
workouts/Workouts/Views/Workouts/ExercisePickerView.swift
2025-07-25 17:42:25 -04:00

58 lines
1.9 KiB
Swift
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// SplitPickerView.swift
// Workouts
//
// Created by rzen on 7/13/25 at 7:17PM.
//
// Copyright 2025 Rouslan Zenetl. All Rights Reserved.
//
import SwiftUI
import SwiftData
struct ExercisePickerView: View {
@Environment(\.modelContext) private var modelContext
@Environment(\.dismiss) private var dismiss
@Query(sort: [SortDescriptor(\ExerciseType.name)]) private var exerciseTypes: [ExerciseType]
// @Query(sort: [SortDescriptor(\Exercise.name)]) private var exercises: [Exercise]
var onExerciseSelected: (Exercise) -> Void
var body: some View {
NavigationStack {
VStack {
Form {
ForEach (exerciseTypes) { exerciseType in
if let exercises = exerciseType.exercises, !exercises.isEmpty {
let sortedExercises = exercises.sorted(by: { $0.name < $1.name })
Section (header: Text("\(exerciseType.name)")) {
List {
ForEach(sortedExercises) { exercise in
Button(action: {
onExerciseSelected(exercise)
dismiss()
}) {
ListItem(text: exercise.name)
}
.buttonStyle(.plain)
}
}
}
}
}
}
}
.toolbar {
ToolbarItem(placement: .navigationBarLeading) {
Button("Cancel") {
dismiss()
}
}
}
}
}
}