feat: show location info in schedule view

Adds stadium name and city to game rows in the schedule list.
The GameRowView now has a showLocation parameter that displays
a location row with mappin icon when enabled.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-01-12 18:35:04 -06:00
parent b14f72a0fb
commit 7946161945

View File

@@ -92,7 +92,7 @@ struct ScheduleListView: View {
ForEach(viewModel.gamesBySport, id: \.sport) { sportGroup in
Section {
ForEach(sportGroup.games) { richGame in
GameRowView(game: richGame, showDate: true)
GameRowView(game: richGame, showDate: true, showLocation: true)
}
} header: {
HStack(spacing: 8) {
@@ -208,6 +208,7 @@ struct SportFilterChip: View {
struct GameRowView: View {
let game: RichGame
var showDate: Bool = false
var showLocation: Bool = false
private var isToday: Bool {
Calendar.current.isDateInToday(game.game.dateTime)
@@ -262,6 +263,18 @@ struct GameRowView: View {
}
.font(.caption)
.foregroundStyle(.secondary)
// Location info (when grouped by game)
if showLocation {
HStack(spacing: 4) {
Image(systemName: "mappin.circle.fill")
.font(.caption2)
.foregroundStyle(.tertiary)
Text(game.stadium.city)
.font(.caption)
.foregroundStyle(.secondary)
}
}
}
.padding(.vertical, 4)
.listRowBackground(isToday ? Color.orange.opacity(0.1) : nil)