From 3a4b9f23e8b56adb2886b308f37f09984dd0c6ff Mon Sep 17 00:00:00 2001 From: Trey t Date: Sat, 17 Jan 2026 21:32:18 -0600 Subject: [PATCH] fix(itinerary): add empty state and single-line date format to DayHeaderRow - Add isEmpty parameter to show "No items yet, tap + to add" text - Change date format to single line: "Day 1 - Friday, January 17" - Update preview to test both empty and non-empty states Co-Authored-By: Claude Opus 4.5 --- .../Views/ItineraryRows/DayHeaderRow.swift | 38 +++++++++++-------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/SportsTime/Features/Trip/Views/ItineraryRows/DayHeaderRow.swift b/SportsTime/Features/Trip/Views/ItineraryRows/DayHeaderRow.swift index 7b04d6a..4a01965 100644 --- a/SportsTime/Features/Trip/Views/ItineraryRows/DayHeaderRow.swift +++ b/SportsTime/Features/Trip/Views/ItineraryRows/DayHeaderRow.swift @@ -10,6 +10,7 @@ import SwiftUI struct DayHeaderRow: View { let dayNumber: Int let date: Date + let isEmpty: Bool let onAddTapped: () -> Void @Environment(\.colorScheme) private var colorScheme @@ -19,24 +20,26 @@ struct DayHeaderRow: View { } var body: some View { - HStack { - VStack(alignment: .leading, spacing: 2) { - Text("Day \(dayNumber)") + VStack(alignment: .leading, spacing: 4) { + HStack { + Text("Day \(dayNumber) - \(formattedDate)") .font(.title3) .fontWeight(.semibold) .foregroundStyle(Theme.textPrimary(colorScheme)) - Text(formattedDate) - .font(.subheadline) - .foregroundStyle(Theme.textSecondary(colorScheme)) + Spacer() + + Button(action: onAddTapped) { + Image(systemName: "plus.circle.fill") + .font(.title2) + .foregroundStyle(Theme.warmOrange) + } } - Spacer() - - Button(action: onAddTapped) { - Image(systemName: "plus.circle.fill") - .font(.title2) - .foregroundStyle(Theme.warmOrange) + if isEmpty { + Text("No items yet, tap + to add") + .font(.subheadline) + .foregroundStyle(Theme.textSecondary(colorScheme)) } } .padding(.vertical, Theme.Spacing.sm) @@ -45,9 +48,14 @@ struct DayHeaderRow: View { } #Preview { - VStack { - DayHeaderRow(dayNumber: 1, date: Date(), onAddTapped: {}) - DayHeaderRow(dayNumber: 2, date: Date().addingTimeInterval(86400), onAddTapped: {}) + VStack(spacing: 16) { + // Day with items (not empty) + DayHeaderRow(dayNumber: 1, date: Date(), isEmpty: false, onAddTapped: {}) + + Divider() + + // Empty day + DayHeaderRow(dayNumber: 2, date: Date().addingTimeInterval(86400), isEmpty: true, onAddTapped: {}) } .padding() .background(Color.gray.opacity(0.1))