Files
web/apps/scandic-web/app/[lang]/webview/(views)/hotelreservation/gla-payment-callback/page.tsx
Linus Flood fd6909add5 Merged in feat/book-595-gla-tracking (pull request #3187)
feat(BOOK-595): add pageview tracking to gla-callback and get-booking pages

* feat(BOOK-595): add pageview tracking to gla-callback and get-booking pages


Approved-by: Bianca Widstam
2025-11-20 13:50:40 +00:00

61 lines
2.0 KiB
TypeScript

import { notFound } from "next/navigation"
import { logger } from "@scandic-hotels/common/logger"
import { TrackingSDK } from "@scandic-hotels/tracking/TrackingSDK"
import {
TrackingChannelEnum,
type TrackingSDKPageData,
} from "@scandic-hotels/tracking/types"
import { myStay } from "@/constants/routes/webviews"
import GuaranteeCallbackPage from "@/components/GuaranteeCallback"
import type { Lang } from "@scandic-hotels/common/constants/language"
import type { PaymentCallbackStatusEnum } from "@scandic-hotels/common/constants/paymentCallbackStatusEnum"
export default async function GuaranteePaymentWebViewCallbackPage(
props: PageProps<"/[lang]/webview/hotelreservation/gla-payment-callback">
) {
const searchParams = await props.searchParams
const params = await props.params
const lang = params.lang as Lang
const status = searchParams.status as PaymentCallbackStatusEnum
const confirmationNumber =
typeof searchParams.confirmationNumber === "string"
? searchParams.confirmationNumber
: undefined
const refId =
typeof searchParams.RefId === "string" ? searchParams.RefId : undefined
if (!status || !confirmationNumber || !refId) {
notFound()
}
const myStayUrl = `${myStay[lang]}?RefId=${encodeURIComponent(refId)}`
const pageTrackingData: TrackingSDKPageData = {
pageId: "webview|gla-payment-callback",
domainLanguage: lang,
channel: TrackingChannelEnum["hotelreservation"],
pageName: "webview|gla-payment-callback",
siteSections: "webview|hotelreservation|gla-payment-callback",
pageType: "hotelreservationsgla-payment-callback",
siteVersion: "new-web",
}
logger.debug(`[gla-payment-callback] callback started`)
return (
<>
<TrackingSDK pageData={pageTrackingData} />
<GuaranteeCallbackPage
status={status}
confirmationNumber={confirmationNumber}
refId={refId}
myStayUrl={myStayUrl}
lang={lang}
isAncillaryFlow={!!searchParams.ancillary}
/>
</>
)
}