feat(frontend): render ai generated itinerary ui#34
Conversation
Add temporary UI implementation to visualize full AI itinerary data while waiting for finalized UI/UX designs. - Add shadcn Dialog and Badge components for itinerary modal - Implement TripDayTimeline to render day-by-day activities - Implement ActivityTimelineItem with dynamic Lucide icons and cost badges - Update ItinerarySummaryCard to open full-screen responsive Dialog - Render tips, packing suggestions, and total estimated costs - Add global custom scrollbar styling in index.css
Hanseooo
left a comment
There was a problem hiding this comment.
PR Assessment
Status: Good progress, but the PR does not fully satisfy Issue #27 yet.
I recommend marking it not ready to merge until a few remaining gaps are addressed.
Gaps vs Issue #27 Acceptance Criteria
1. Cost breakdown missing
Issue #27 requires:
“Estimated cost breakdown (PHP)”
Currently the UI mostly displays a total range, but does not provide a clear breakdown by category.
Expected example categories:
- Accommodation
- Activities
- Food
- Transport
A simple breakdown table or section would satisfy this requirement.
2. Partial / Empty Data Handling
Some optional fields currently render without guards.
Examples
-
budgetandcompanionsare displayed in the dialog header without fallbacksItinerarySummaryCard.tsx:125ItinerarySummaryCard.tsx:129
These can render
"undefined"if values are missing. -
Total cost range
ItinerarySummaryCard.tsx:134–136
-
Highlights section
- Assumes array content
- No explicit empty-state message
Not critical, but it does not fully meet the “graceful handling of partial data” requirement.
Merge Recommendation
Request changes before merge (these should be relatively small/targeted fixes):
-
Add an estimated cost breakdown section
- Show category buckets when data exists
- Format values in PHP
-
Add safe fallbacks for optional fields
budgetcompanionshighlightstotalCostvalues
-
Ensure explicit empty states
Examples:"No highlights available""Cost estimate pending""Budget not specified"
Once these gaps are addressed, the implementation should fully satisfy Issue #27.
- Add detailed cost breakdown section with accommodation, food, activities, and transport - Add safe fallbacks and explicit empty states for missing budget, companions, and highlights - Add safe fallback for missing total cost estimation


Description
Add temporary UI implementation to visualize full AI itinerary data while waiting for finalized UI/UX designs.
Type of Change
Testing
npm run buildfor frontend,pytestfor backend)npm run typecheckfor frontend)Screenshots / Visual Changes
After
Modal Desktop Screen:

Modal Mobile Screen:

Related Issues
Checklist
anytypes used unnecessarily (TypeScript)Breaking Changes
None
Deployment Notes
None
Review Notes:
Reviewer: Please indicate whether to squash commits or preserve history when merging.