- {/* Location Header with Weather - Only show for first day or when city actually changes */}
- {(() => {
- // Get current day's destination (fallback to main destination if not specified)
- const currentDestination = (day as any).destination || generatedItinerary.destination;
-
- // Check if this is the first day
- if (dayIndex === 0) return true;
-
- // Check if destination changed from previous day
- if (dayIndex > 0) {
- const previousDay = generatedItinerary.dailyPlans[dayIndex - 1];
- const previousDestination = (previousDay as any).destination || generatedItinerary.destination;
-
- // Only show if city name is different
- return currentDestination.name !== previousDestination.name;
- }
-
- return false;
- })() && (
+
+ {/* City / Weather header — only on first day */}
+ {dayIndex === 0 && (
- {((day as any).destination || generatedItinerary.destination).name}, {((day as any).destination || generatedItinerary.destination).country}
+ {generatedItinerary?.city}, Australia
-
{((day as any).destination || generatedItinerary.destination).weather}
-
-
-
+
)}
@@ -540,24 +262,28 @@ export function ItineraryViewPageDesign({
className="flex items-center gap-4 pl-2"
>
- {day.day}
+ {day.dayNumber}
-
Day {day.day}
+
+ Day {day.dayNumber}
+
{day.title}
- {/* GMT Label */}
+ {/* Time-zone label */}
- {/* Activity Cards - Desktop Grid Layout */}
+ {/* Activity Cards */}
- {day.activities.map((activity, actIndex) => {
- const activityKey = `day${day.day}-act${actIndex}`;
- const isFavorite = favorites.has(activityKey);
+ {day.items?.map((activity: any, actIndex: number) => {
+ const activityKey = `day${day.dayNumber}-act${actIndex}`;
+ // const isFavorite = favorites.has(activityKey);
return (
{/* Time Column */}
-
{activity.time}
+
+ {activity.timeSlot}
+
{/* Activity Card */}
- {/* Hero Image with Overlay Buttons */}
+ {/* Hero Image */}
-
- {/* Favorite Heart Button - Top Right */}
-
+
+ {/* Favourite Button */}
+ {/*
-
+
*/}
- {/* Get Directions Button - Bottom Left */}
+ {/* Get Directions — links to Google Maps via lat/lng */}
-
+ window.open(
+ `https://www.google.com/maps?q=${activity.latitude},${activity.longitude}`,
+ '_blank'
+ )
+ }
>
Get Directions
@@ -607,40 +341,41 @@ export function ItineraryViewPageDesign({
- {/* Content Section */}
+ {/* Content */}
- {/* Location Name & Address */}
- {activity.activity}
+ {activity.title}
- {activity.address}
+
+ {activity.locationName}
+
{/* Category Badges */}
- {activity.categories.map((category, catIndex) => (
- (
+
- {category}
+ {cat}
))}
- {/* Activity Details - Bullet Points */}
+ {/* Description */}
- {activity.description.map((detail, detailIndex) => (
-
- •
- {detail}
-
- ))}
+
+ •
+
+ {activity.description}
+
+
@@ -655,7 +390,7 @@ export function ItineraryViewPageDesign({
)}
- {/* Summary View */}
+ {/* ── Summary View ─────────────────────────────────────────────────── */}
{viewMode === 'summary' && (
- Trip Summary
+
+ Trip Summary
+
- {generatedItinerary.dailyPlans.map((day, index) => (
-
-
-
-
Day {day.day}: {day.title}
-
-
- {day.activities.map((activity, actIndex) => (
-
-
-
-
{activity.activity}
-
-
{activity.time}
-
•
-
{activity.location}
+ {days.map((day: any, dayIndex: number) => {
+ // ✅ Match summary to the correct day by dayNumber
+ const daySummary = summaries.find((s: any) => s.dayNumber === day.dayNumber);
+
+ const dayDate = days[0]?.date
+ ? new Date(
+ new Date(days[0].date).setDate(
+ new Date(days[0].date).getDate() + dayIndex
+ )
+ ).toLocaleDateString('en-AU', {
+ day: '2-digit',
+ month: '2-digit',
+ year: 'numeric',
+ })
+ : '';
+
+ return (
+
+
+
+
+
+ Day {day.dayNumber}: {daySummary?.title ?? day.title}
+
+
+
{dayDate}
+
+
+
+ {daySummary?.items?.map((item: any, actIndex: number) => (
+
+
+
+
{item.title}
+
+ {item.timeSlot}
+ •
+ {item.locationName}
+
-
- ))}
+ ))}
+
-
- ))}
+ );
+ })}
@@ -709,16 +469,11 @@ export function ItineraryViewPageDesign({
Create Another
-
+
Save Itinerary
-
+
Share Trip
@@ -728,7 +483,7 @@ export function ItineraryViewPageDesign({
{/* Footer */}
- void;
@@ -170,8 +171,10 @@ export function ProfilePage({
const { data: userDetails, isLoading } = useGetUserProfileDetailsQuery(userId)
const [updateUserProfileDetails, { isLoading: savingChanges }] = useUpdateUserProfileDetailsMutation();
const { data, isLoading: loadingCards } = useGetUserCardsQuery(sort)
+ const { data: userItineraries, isLoading: loadingItineraries } = useGetUserItinerariesQuery({})
const cards = data ?? []
+ const itineraries = userItineraries?.itineraries ?? []
useEffect(() => {
if (userDetails) {
@@ -427,8 +430,8 @@ export function ProfilePage({
{(() => {
// Determine which pass type to show
- const hasUnlimitedPass = activeCards.some((card:any) => card.cardType.cardTypeName === 'selective_pass');
- const hasSelectivePass = activeCards.some((card:any) => card.cardType.cardTypeName === 'unlimited_card');
+ const hasUnlimitedPass = activeCards.some((card: any) => card.cardType.cardTypeName === 'selective_pass');
+ const hasSelectivePass = activeCards.some((card: any) => card.cardType.cardTypeName === 'unlimited_card');
if (hasUnlimitedPass) {
return (
@@ -681,7 +684,7 @@ export function ProfilePage({
{/* Offers Button */}
navigate("/super-savings")}
+ onClick={() => navigate("/super-savings")}
className="bg-gradient-to-r from-primary to-secondary hover:from-primary/90 hover:to-secondary/90 text-white font-poppins px-8 py-3 font-normal"
>
@@ -725,17 +728,17 @@ export function ProfilePage({
{card.cardMode === "flexi" ? (
- <>
- Attractions:
- {card.noOfAttractions}
- >
- ) : (
- <>
- Days:
- {card.noOfDays}
- >
- )
- }
+ <>
+ Attractions:
+ {card.noOfAttractions}
+ >
+ ) : (
+ <>
+ Days:
+ {card.noOfDays}
+ >
+ )
+ }
Expired on:
@@ -762,47 +765,47 @@ export function ProfilePage({
My Itineraries
navigate("/create-itinerary-design")}
+ onClick={() => navigate("/create-itinerary-design")}
>
Create Itinerary
- {mockItineraries.length > 0 ? (
+ {itineraries?.length > 0 ? (
- {mockItineraries.map((itinerary) => (
+ {itineraries.map((itinerary: any) => (
-
{itinerary.name}
-
{itinerary.city}
+
{ }
+
{itinerary.city.cityName} Unlimited Card
-
- {itinerary.status}
+
+ {itinerary.isActive ? "Active" : "Inactive"}
- {itinerary.duration}
+ {itinerary.totalDays}
- {itinerary.attractions} attractions
+ {itinerary?.attractions} attractions
- Created {new Date(itinerary.createdDate).toLocaleDateString()}
+ Created {new Date(itinerary.createdAt).toLocaleDateString()}
navigate(`/itinerary-view-design/${itinerary.id}`)}
>
View Itinerary