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:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user