feat(itinerary): reorder Add button after day header + comprehensive docs
- Move Add button to appear immediately after Day header (before games) - Split games out of dayHeader into separate row for correct ordering - Add 600+ lines of inline documentation to ItineraryTableViewController - Document architecture decisions, data flow, constraints, and algorithms - Add function-level comments explaining drag/drop, sortOrder calculation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -159,6 +159,9 @@ struct ItineraryTableViewWrapper<HeaderContent: View>: UIViewControllerRepresent
|
|||||||
// Travel before this day (travel is stored on the destination day)
|
// Travel before this day (travel is stored on the destination day)
|
||||||
let travelBefore: TravelSegment? = travelByDay[dayNum]
|
let travelBefore: TravelSegment? = travelByDay[dayNum]
|
||||||
|
|
||||||
|
// ONE Add button per day - always first after day header
|
||||||
|
items.append(ItineraryRowItem.addButton(day: dayNum))
|
||||||
|
|
||||||
// Custom items for this day - simply filter by day and sort by sortOrder
|
// Custom items for this day - simply filter by day and sort by sortOrder
|
||||||
let dayItems = customItems.filter { $0.day == dayNum }
|
let dayItems = customItems.filter { $0.day == dayNum }
|
||||||
.sorted { $0.sortOrder < $1.sortOrder }
|
.sorted { $0.sortOrder < $1.sortOrder }
|
||||||
@@ -167,9 +170,6 @@ struct ItineraryTableViewWrapper<HeaderContent: View>: UIViewControllerRepresent
|
|||||||
items.append(ItineraryRowItem.customItem(item))
|
items.append(ItineraryRowItem.customItem(item))
|
||||||
}
|
}
|
||||||
|
|
||||||
// ONE Add button per day
|
|
||||||
items.append(ItineraryRowItem.addButton(day: dayNum))
|
|
||||||
|
|
||||||
let dayData = ItineraryDayData(
|
let dayData = ItineraryDayData(
|
||||||
id: dayNum,
|
id: dayNum,
|
||||||
dayNumber: dayNum,
|
dayNumber: dayNum,
|
||||||
|
|||||||
@@ -837,14 +837,14 @@ struct TripDetailView: View {
|
|||||||
|
|
||||||
// Custom items for this day (sorted by sortOrder)
|
// Custom items for this day (sorted by sortOrder)
|
||||||
if allowCustomItems {
|
if allowCustomItems {
|
||||||
|
// Add button first - always right after day header
|
||||||
|
sections.append(.addButton(day: dayNum))
|
||||||
|
|
||||||
let dayItems = customItems.filter { $0.day == dayNum }
|
let dayItems = customItems.filter { $0.day == dayNum }
|
||||||
.sorted { $0.sortOrder < $1.sortOrder }
|
.sorted { $0.sortOrder < $1.sortOrder }
|
||||||
for item in dayItems {
|
for item in dayItems {
|
||||||
sections.append(.customItem(item))
|
sections.append(.customItem(item))
|
||||||
}
|
}
|
||||||
|
|
||||||
// One add button per day
|
|
||||||
sections.append(.addButton(day: dayNum))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user