Add Stadium Progress system and themed loading spinners
Stadium Progress & Achievements: - Add StadiumVisit and Achievement SwiftData models - Create Progress tab with interactive map view - Implement photo-based visit import with GPS/date matching - Add achievement badges (count-based, regional, journey) - Create shareable progress cards for social media - Add canonical data infrastructure (stadium identities, team aliases) - Implement score resolution from free APIs (MLB, NBA, NHL stats) UI Improvements: - Add ThemedSpinner and ThemedSpinnerCompact components - Replace all ProgressView() with themed spinners throughout app - Fix sport selection state not persisting when navigating away Bug Fixes: - Fix Coast to Coast trips showing only 1 city (validation issue) - Fix stadium progress showing 0/0 (filtering issue) - Remove "Stadium Quest" title from progress view 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -53,7 +53,8 @@ struct DayCardTests {
|
||||
state: "ST",
|
||||
latitude: 40.0,
|
||||
longitude: -100.0,
|
||||
capacity: 40000
|
||||
capacity: 40000,
|
||||
sport: game.sport
|
||||
)
|
||||
return RichGame(game: game, homeTeam: homeTeam, awayTeam: awayTeam, stadium: stadium)
|
||||
}
|
||||
@@ -350,7 +351,7 @@ struct DayCardTests {
|
||||
/// Tests for handling duplicate game IDs without crashing (regression test for fatal error)
|
||||
struct DuplicateGameIdTests {
|
||||
|
||||
private func makeStadium() -> Stadium {
|
||||
private func makeStadium(sport: Sport = .mlb) -> Stadium {
|
||||
Stadium(
|
||||
id: UUID(),
|
||||
name: "Test Stadium",
|
||||
@@ -358,7 +359,8 @@ struct DuplicateGameIdTests {
|
||||
state: "TS",
|
||||
latitude: 40.0,
|
||||
longitude: -100.0,
|
||||
capacity: 40000
|
||||
capacity: 40000,
|
||||
sport: sport
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user