// // WorkoutOverviewView.swift // Werkout_ios // // Created by Trey Tartt on 7/9/23. // import SwiftUI struct WorkoutOverviewView: View { let workout: Workout var body: some View { VStack(alignment: .leading, spacing: WerkoutTheme.xs) { Text(workout.name) .font(WerkoutTheme.cardTitle) .foregroundStyle(WerkoutTheme.textPrimary) .lineLimit(1) if let description = workout.description, !description.isEmpty { Text(description) .font(WerkoutTheme.bodyText) .foregroundStyle(WerkoutTheme.textSecondary) .lineLimit(2) } HStack(spacing: 12) { if let estimatedTime = workout.estimatedTime { Label(estimatedTime.asString(style: .abbreviated), systemImage: "clock") } if let exerciseCount = workout.exercise_count { Label("\(exerciseCount) exercises", systemImage: "list.bullet") } if let muscles = workout.muscles, !muscles.isEmpty { Label(muscleSummary(muscles), systemImage: "figure.strengthtraining.traditional") } } .font(WerkoutTheme.caption) .foregroundStyle(WerkoutTheme.textMuted) } .frame(maxWidth: .infinity, alignment: .leading) .werkoutCard() } private func muscleSummary(_ muscles: [String]) -> String { guard let first = muscles.first else { return "" } if muscles.count <= 2 { return muscles.joined(separator: ", ") } return "\(first), \(muscles[1]) +\(muscles.count - 2)" } } struct WorkoutOverviewView_Previews: PreviewProvider { static var previews: some View { WorkoutOverviewView(workout: PreviewData.allWorkouts()[2]) } }