import SwiftUI struct GamesHistoryRow: View { @Environment(\.colorScheme) private var colorScheme let visit: StadiumVisit let stadium: Stadium? var body: some View { HStack(spacing: 12) { // Sport icon if let stadium { Image(systemName: sportIcon(for: stadium.sport)) .font(.title3) .foregroundStyle(stadium.sport.themeColor) .frame(width: 32) .accessibilityHidden(true) } // Visit info VStack(alignment: .leading, spacing: 4) { // Date Text(visit.visitDate.formatted(date: .abbreviated, time: .omitted)) .font(.subheadline.bold()) .foregroundStyle(Theme.textPrimary(colorScheme)) // Teams (if game) if let matchup = visit.matchupDescription { Text(matchup) .font(.caption) .foregroundStyle(Theme.textSecondary(colorScheme)) } else { Text(visit.stadiumNameAtVisit) .font(.caption) .foregroundStyle(Theme.textSecondary(colorScheme)) } } Spacer() // Chevron Image(systemName: "chevron.right") .font(.caption) .foregroundStyle(Theme.textMuted(colorScheme)) .accessibilityHidden(true) } .padding() .background(Theme.cardBackground(colorScheme)) .clipShape(RoundedRectangle(cornerRadius: 10)) .accessibilityElement(children: .combine) } private func sportIcon(for sport: Sport) -> String { switch sport { case .mlb: return "baseball" case .nba: return "basketball" case .nhl: return "hockey.puck" case .nfl: return "football" case .mls: return "soccerball" case .wnba: return "basketball" case .nwsl: return "soccerball" } } } #Preview { VStack { Text("GamesHistoryRow Preview") } .padding() .background(Color(.systemGroupedBackground)) }