Files
web/apps/scandic-web/components/HotelReservation/BookingConfirmation/Tracking/index.tsx
Tobias Johansson b6c066ea8d Merged in fix/SW-2497-tracking-remove-ancilleries-data (pull request #1949)
fix: remove ancilleries data when reloading booking confirmation

* fix: remove ancilleries data when reloading booking confirmation


Approved-by: Arvid Norlin
Approved-by: Christian Andolf
2025-05-05 12:40:47 +00:00

61 lines
1.6 KiB
TypeScript

"use client"
import { useEffect, useState } from "react"
import { useBookingConfirmationStore } from "@/stores/booking-confirmation"
import TrackingSDK from "@/components/TrackingSDK"
import useLang from "@/hooks/useLang"
import { getTracking } from "./tracking"
import type { Room } from "@/types/stores/booking-confirmation"
import type { BookingConfirmation } from "@/types/trpc/routers/booking/confirmation"
export default function Tracking({
bookingConfirmation,
}: {
bookingConfirmation: BookingConfirmation
}) {
const lang = useLang()
const bookingRooms = useBookingConfirmationStore((state) => state.rooms)
const [hasLoadedBookingConfirmation] = useState(() => {
if (typeof window !== "undefined") {
return sessionStorage.getItem("hasLoadedBookingConfirmation")
}
return null
})
useEffect(() => {
sessionStorage.setItem("hasLoadedBookingConfirmation", "true")
return () => {
sessionStorage.removeItem("hasLoadedBookingConfirmation")
}
}, [])
if (!bookingRooms.every(Boolean)) {
return null
}
const rooms = bookingRooms.filter((room): room is Room => !!room)
const { hotelsTrackingData, pageTrackingData, paymentInfo, ancillaries } =
getTracking(
lang,
bookingConfirmation.booking,
bookingConfirmation.hotel,
rooms
)
return (
<TrackingSDK
pageData={pageTrackingData}
hotelInfo={hasLoadedBookingConfirmation ? undefined : hotelsTrackingData}
paymentInfo={hasLoadedBookingConfirmation ? undefined : paymentInfo}
ancillaries={hasLoadedBookingConfirmation ? undefined : ancillaries}
/>
)
}