Files
web/apps/scandic-web/app/[lang]/(live)/(public)/hotelreservation/get-booking/page.tsx
Linus Flood 3bd23bf56e Merged in feat/book-595-gla-tracking-fix (pull request #3294)
feat(BOOK-595): fixed correct tracking values and enter details pageview tracking

* feat(BOOK-595): fixed correct tracking values and enter details pageview tracking

* Fixed on SAS as well


Approved-by: Joakim Jäderberg
2025-12-05 08:01:48 +00:00

67 lines
2.0 KiB
TypeScript

import { cookies } from "next/headers"
import { TrackingSDK } from "@scandic-hotels/tracking/TrackingSDK"
import {
TrackingChannelEnum,
type TrackingSDKPageData,
} from "@scandic-hotels/tracking/types"
import FindMyBooking from "@/components/HotelReservation/FindMyBooking"
import { getIntl } from "@/i18n"
import styles from "./page.module.css"
import type { AdditionalInfoCookieValue } from "@scandic-hotels/booking-flow/types/components/findMyBooking/additionalInfoCookieValue"
import type { Lang } from "@scandic-hotels/common/constants/language"
import type { FindMyBookingErrorEnum } from "@/components/HotelReservation/FindMyBooking/utils"
export default async function GetBookingPage(
props: PageProps<"/[lang]/hotelreservation/get-booking">
) {
const params = await props.params
const lang = params.lang as Lang
const pageTrackingData: TrackingSDKPageData = {
pageId: "get-booking",
domainLanguage: lang,
channel: TrackingChannelEnum["hotelreservation"],
pageName: "hotelreservation|get-booking",
siteSections: "hotelreservation|get-booking",
pageType: "getbookingpage",
siteVersion: "new-web",
}
const searchParams = await props.searchParams
const error = searchParams.error as FindMyBookingErrorEnum | undefined
const cookieStore = await cookies()
const previousValuesCookie = cookieStore.get("bv")?.value
let defaultValues: AdditionalInfoCookieValue | undefined
// Only prepopulate previous values if there is an error
if (previousValuesCookie && error) {
defaultValues = JSON.parse(previousValuesCookie)
}
return (
<main className={styles.main}>
<TrackingSDK pageData={pageTrackingData} />
<div className={styles.form}>
<FindMyBooking error={error} defaultValues={defaultValues} />
</div>
</main>
)
}
export async function generateMetadata() {
const intl = await getIntl()
return {
title: intl.formatMessage({
id: "booking.findBooking",
defaultMessage: "Find booking",
}),
}
}