add ActiveWorkoutSession logic, refactor Home, add additional sample data, add isDebug
This commit is contained in:
@@ -6,13 +6,17 @@
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
import SwiftData
|
||||
|
||||
struct WorkoutLog: View {
|
||||
@Environment(\.modelContext) private var modelContext
|
||||
@Query(sort: \WorkoutSession.name) private var workoutSessions: [WorkoutSession]
|
||||
|
||||
@Default(\.isWorkingOut) var isWorkingOut
|
||||
|
||||
var body: some View {
|
||||
NavigationView() {
|
||||
List() {
|
||||
List {
|
||||
Section(header: Text("Dummies")) {
|
||||
NavigationLink(destination: Text("WorkoutLogDetails")) {
|
||||
HStack(alignment: .top) {
|
||||
Image(systemName: "figure.run")
|
||||
@@ -67,22 +71,39 @@ struct WorkoutLog: View {
|
||||
}
|
||||
}
|
||||
}
|
||||
.navigationBarTitle("Workout Logs")
|
||||
Section(header: Text("Workout Sessions")) {
|
||||
ForEach(workoutSessions) { session in
|
||||
VStack(alignment: .leading) {
|
||||
Text(session.creationDate.ISO8601Format())
|
||||
if let workout = session.workout {
|
||||
Text(workout.name)
|
||||
.font(.subheadline)
|
||||
}
|
||||
}
|
||||
}.onDelete(perform: deleteWorkoutSession)
|
||||
}
|
||||
|
||||
}
|
||||
.tabItem {
|
||||
Image(systemName: "pencil.and.list.clipboard")
|
||||
Text("Log")
|
||||
.navigationTitle("Workout Logs")
|
||||
}
|
||||
|
||||
private func deleteWorkoutSession(offsets: IndexSet) {
|
||||
withAnimation {
|
||||
for index in offsets {
|
||||
modelContext.delete(workoutSessions[index])
|
||||
}
|
||||
try? modelContext.save()
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#Preview("Active WorkoutSession") {
|
||||
WorkoutLog()
|
||||
.onAppear {
|
||||
Defaults.shared.isWorkingOut = true
|
||||
}
|
||||
NavigationStack {
|
||||
WorkoutLog()
|
||||
.onAppear {
|
||||
Defaults.shared.isWorkingOut = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Preview("No Active WorkoutSession") {
|
||||
|
||||
Reference in New Issue
Block a user