fix(trip): remove buffer days from trip planner

Buffer days added no value to trip planning. Itineraries now show
only game days and necessary travel days without extra padding.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-01-10 17:47:34 -06:00
parent e8e47e0e2e
commit 12a219d826
2 changed files with 1 additions and 38 deletions

View File

@@ -77,9 +77,6 @@ final class TripCreationViewModel {
}
}
// Trip duration for game-first mode (days before/after selected games)
var tripBufferDays: Int = 2
// Games
var mustSeeGameIds: Set<UUID> = []
var availableGames: [RichGame] = []
@@ -174,11 +171,7 @@ final class TripCreationViewModel {
let gameDates = selectedGames.map { $0.game.dateTime }
guard let earliest = gameDates.min(),
let latest = gameDates.max() else { return nil }
let calendar = Calendar.current
let bufferedStart = calendar.date(byAdding: .day, value: -tripBufferDays, to: earliest) ?? earliest
let bufferedEnd = calendar.date(byAdding: .day, value: tripBufferDays, to: latest) ?? latest
return (bufferedStart, bufferedEnd)
return (earliest, latest)
}
// MARK: - Actions
@@ -459,7 +452,6 @@ final class TripCreationViewModel {
selectedSports = [.mlb]
startDate = Date()
endDate = Date().addingTimeInterval(86400 * 7)
tripBufferDays = 2
mustSeeGameIds = []
numberOfStops = 5
leisureLevel = .moderate

View File

@@ -66,7 +66,6 @@ struct TripCreationView: View {
// Sports + Game Picker
sportsSection
gameBrowserSection
tripBufferSection
case .locations:
// Locations + Sports + optional games
@@ -493,34 +492,6 @@ struct TripCreationView: View {
}
}
private var tripBufferSection: some View {
ThemedSection(title: "Trip Duration") {
ThemedStepper(
label: "Buffer Days",
value: viewModel.tripBufferDays,
range: 0...7,
onIncrement: { viewModel.tripBufferDays += 1 },
onDecrement: { viewModel.tripBufferDays -= 1 }
)
if let dateRange = viewModel.gameFirstDateRange {
HStack {
Text("Trip window:")
.font(.system(size: Theme.FontSize.caption))
.foregroundStyle(Theme.textSecondary(colorScheme))
Spacer()
Text("\(dateRange.start.formatted(date: .abbreviated, time: .omitted)) - \(dateRange.end.formatted(date: .abbreviated, time: .omitted))")
.font(.system(size: Theme.FontSize.caption, weight: .medium))
.foregroundStyle(Theme.warmOrange)
}
}
Text("Days before first game and after last game for travel/rest")
.font(.system(size: Theme.FontSize.micro))
.foregroundStyle(Theme.textMuted(colorScheme))
}
}
private var sportsSection: some View {
let sports = Sport.supported
let rows = sports.chunked(into: 4)