Files
WerkoutIOS/Werkout_ios/subview/AllMusclesView.swift
2024-06-16 19:45:22 -05:00

67 lines
2.3 KiB
Swift

//
// AllMusclesView.swift
// Werkout_ios
//
// Created by Trey Tartt on 6/16/24.
//
import SwiftUI
struct AllMusclesView: View {
@Binding var selectedMuscles: [Muscle]
@State var createWorkoutItemPickerViewModel: CreateWorkoutItemPickerViewModel?
var body: some View {
VStack {
if let _ = DataStore.shared.allMuscles {
Text("Select Muscles")
.foregroundColor(.cyan)
Text("\(selectedMuscles.count) Selected")
}
}
.onTapGesture {
if let muscles = DataStore.shared.allMuscles {
var createWorkoutItemPickerModels = [CreateWorkoutItemPickerModel]()
muscles.forEach({
let model = CreateWorkoutItemPickerModel(id: $0.id, name: $0.name.lowercased())
createWorkoutItemPickerModels.append(model)
})
createWorkoutItemPickerModels = createWorkoutItemPickerModels.sorted(by: {
$0.name < $1.name
})
let selectedIds = selectedMuscles.map { $0.id }
createWorkoutItemPickerViewModel = CreateWorkoutItemPickerViewModel(allValues: createWorkoutItemPickerModels, selectedIds: selectedIds)
}
}
.onAppear{
if #function.hasPrefix("__preview") {
DataStore.shared.setupFakeData()
}
guard let _ = DataStore.shared.allExercise,
let muscles = DataStore.shared.allMuscles,
let _ = DataStore.shared.allEquipment else {
return
}
selectedMuscles = muscles
}
.sheet(item: $createWorkoutItemPickerViewModel) { item in
CreateWorkoutItemPickerView(viewModel: item, completed: { selectedids in
if let muscles = DataStore.shared.allMuscles {
selectedMuscles.removeAll()
for id in selectedids {
if let muscle = muscles.first(where: {
$0.id == id
}) {
selectedMuscles.append(muscle)
}
}
}
})
}
}
}
//#Preview {
// AllMusclesView()
//}