refactor(itinerary): replace CustomItineraryItem with ItineraryItem across codebase
- Update CKModels.swift to remove deleted type references - Migrate LocalCustomItem to LocalItineraryItem in SavedTrip.swift - Update AppDelegate to handle subscription removal - Refactor AddItemSheet to create ItineraryItem with CustomInfo - Update ItineraryTableViewController and Wrapper for new model - Refactor TripDetailView state, methods and callbacks - Fix TripMapView to display custom items with new model structure This completes the migration from the legacy CustomItineraryItem/TravelDayOverride model to the unified ItineraryItem model with ItemKind enum. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -12,32 +12,32 @@ struct ItineraryTableViewWrapper<HeaderContent: View>: UIViewControllerRepresent
|
||||
|
||||
let trip: Trip
|
||||
let games: [RichGame]
|
||||
let customItems: [CustomItineraryItem]
|
||||
let itineraryItems: [ItineraryItem]
|
||||
let travelDayOverrides: [String: Int]
|
||||
let headerContent: HeaderContent
|
||||
|
||||
// Callbacks
|
||||
var onTravelMoved: ((String, Int) -> Void)?
|
||||
var onCustomItemMoved: ((UUID, Int, Double) -> Void)? // itemId, newDay, newSortOrder
|
||||
var onCustomItemTapped: ((CustomItineraryItem) -> Void)?
|
||||
var onCustomItemDeleted: ((CustomItineraryItem) -> Void)?
|
||||
var onCustomItemTapped: ((ItineraryItem) -> Void)?
|
||||
var onCustomItemDeleted: ((ItineraryItem) -> Void)?
|
||||
var onAddButtonTapped: ((Int) -> Void)? // Just day number
|
||||
|
||||
init(
|
||||
trip: Trip,
|
||||
games: [RichGame],
|
||||
customItems: [CustomItineraryItem],
|
||||
itineraryItems: [ItineraryItem],
|
||||
travelDayOverrides: [String: Int],
|
||||
@ViewBuilder headerContent: () -> HeaderContent,
|
||||
onTravelMoved: ((String, Int) -> Void)? = nil,
|
||||
onCustomItemMoved: ((UUID, Int, Double) -> Void)? = nil,
|
||||
onCustomItemTapped: ((CustomItineraryItem) -> Void)? = nil,
|
||||
onCustomItemDeleted: ((CustomItineraryItem) -> Void)? = nil,
|
||||
onCustomItemTapped: ((ItineraryItem) -> Void)? = nil,
|
||||
onCustomItemDeleted: ((ItineraryItem) -> Void)? = nil,
|
||||
onAddButtonTapped: ((Int) -> Void)? = nil
|
||||
) {
|
||||
self.trip = trip
|
||||
self.games = games
|
||||
self.customItems = customItems
|
||||
self.itineraryItems = itineraryItems
|
||||
self.travelDayOverrides = travelDayOverrides
|
||||
self.headerContent = headerContent()
|
||||
self.onTravelMoved = onTravelMoved
|
||||
@@ -159,12 +159,13 @@ struct ItineraryTableViewWrapper<HeaderContent: View>: UIViewControllerRepresent
|
||||
// Travel before this day (travel is stored on the destination day)
|
||||
let travelBefore: TravelSegment? = travelByDay[dayNum]
|
||||
|
||||
// Custom items for this day - simply filter by day and sort by sortOrder
|
||||
// Custom items for this day - filter by day and custom kind, sort by sortOrder
|
||||
// Note: Add button is now embedded in the day header row (not a separate item)
|
||||
let dayItems = customItems.filter { $0.day == dayNum }
|
||||
let customItemsForDay = itineraryItems
|
||||
.filter { $0.day == dayNum && $0.isCustom }
|
||||
.sorted { $0.sortOrder < $1.sortOrder }
|
||||
|
||||
for item in dayItems {
|
||||
for item in customItemsForDay {
|
||||
items.append(ItineraryRowItem.customItem(item))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user