From 519795acac6f9951d7353adfc2acd04ac6979121 Mon Sep 17 00:00:00 2001 From: Linus Flood Date: Wed, 8 Jan 2025 08:50:50 +0100 Subject: [PATCH] feat: tracking - added discount property and some basics for paymentInfo --- .../(standard)/step/enterDetailsTracking.tsx | 5 ++++- .../BookingConfirmation/index.tsx | 6 ++++++ components/TrackingSDK/RouterTransition.tsx | 15 ++++++++++++++- components/TrackingSDK/index.tsx | 4 ++++ env/server.ts | 4 ++-- types/components/tracking.ts | 11 +++++++++++ 6 files changed, 41 insertions(+), 4 deletions(-) diff --git a/app/[lang]/(live)/(public)/hotelreservation/(standard)/step/enterDetailsTracking.tsx b/app/[lang]/(live)/(public)/hotelreservation/(standard)/step/enterDetailsTracking.tsx index 0fc33acf4..36ea41182 100644 --- a/app/[lang]/(live)/(public)/hotelreservation/(standard)/step/enterDetailsTracking.tsx +++ b/app/[lang]/(live)/(public)/hotelreservation/(standard)/step/enterDetailsTracking.tsx @@ -115,7 +115,10 @@ export default function EnterDetailsTracking(props: Props) { bedType: bedType?.description, roomTypeCode: bedType?.roomTypeCode, roomPrice: roomPrice.perStay.local.price, - //discount: public - member rates?. + discount: roomRate.memberRate + ? roomRate.publicRate.localPrice.pricePerStay - + roomRate.memberRate.localPrice.pricePerStay + : 0, } return data diff --git a/components/HotelReservation/BookingConfirmation/index.tsx b/components/HotelReservation/BookingConfirmation/index.tsx index a93a93346..dbe6586e9 100644 --- a/components/HotelReservation/BookingConfirmation/index.tsx +++ b/components/HotelReservation/BookingConfirmation/index.tsx @@ -13,6 +13,7 @@ import { TrackingChannelEnum, type TrackingSDKHotelInfo, type TrackingSDKPageData, + type TrackingSDKPaymentInfo, } from "@/types/components/tracking" import { CurrencyEnum } from "@/types/enums/currency" @@ -69,6 +70,10 @@ export default async function BookingConfirmation({ bnr: booking.confirmationNumber ?? undefined, } + const paymentInfo: TrackingSDKPaymentInfo = { + paymentStatus: "confirmed", + } + return ( <> @@ -76,6 +81,7 @@ export default async function BookingConfirmation({ diff --git a/components/TrackingSDK/RouterTransition.tsx b/components/TrackingSDK/RouterTransition.tsx index 5c21a6cda..4cbda687d 100644 --- a/components/TrackingSDK/RouterTransition.tsx +++ b/components/TrackingSDK/RouterTransition.tsx @@ -29,6 +29,7 @@ export default function RouterTransition({ pageData, userData, hotelInfo, + paymentInfo, }: TrackingSDKProps) { const [loading, setLoading] = useOptimistic(false) const [status, setStatus] = useState( @@ -64,6 +65,7 @@ export default function RouterTransition({ pageInfo: pageObject, userInfo: userData, hotelInfo: hotelInfo, + paymentInfo, }) perfObserver.disconnect() @@ -76,7 +78,16 @@ export default function RouterTransition({ hasRunInitial.current = true setHasRun() } - }, [pathName, hasRun, setHasRun, hotelInfo, userData, pageData, sessionId]) + }, [ + pathName, + hasRun, + setHasRun, + hotelInfo, + userData, + pageData, + sessionId, + paymentInfo, + ]) useEffect(() => { if (isTransitioning && status === TransitionStatusEnum.NotRun) { @@ -115,6 +126,7 @@ export default function RouterTransition({ pageInfo: pageObject, userInfo: userData, hotelInfo: hotelInfo, + paymentInfo, }) } } @@ -131,6 +143,7 @@ export default function RouterTransition({ getPageLoadTime, hasRun, sessionId, + paymentInfo, ]) return null diff --git a/components/TrackingSDK/index.tsx b/components/TrackingSDK/index.tsx index 1ba49d695..e9bcaa3a0 100644 --- a/components/TrackingSDK/index.tsx +++ b/components/TrackingSDK/index.tsx @@ -5,6 +5,7 @@ import RouterTransition from "@/components/TrackingSDK/RouterTransition" import type { TrackingSDKHotelInfo, TrackingSDKPageData, + TrackingSDKPaymentInfo, } from "@/types/components/tracking" export const preloadUserTracking = () => { @@ -14,9 +15,11 @@ export const preloadUserTracking = () => { export default async function TrackingSDK({ pageData, hotelInfo, + paymentInfo, }: { pageData: TrackingSDKPageData hotelInfo?: TrackingSDKHotelInfo + paymentInfo?: TrackingSDKPaymentInfo }) { const userTrackingData = await getUserTracking() @@ -25,6 +28,7 @@ export default async function TrackingSDK({ pageData={pageData} userData={userTrackingData} hotelInfo={hotelInfo} + paymentInfo={paymentInfo} /> ) } diff --git a/env/server.ts b/env/server.ts index 831e60df6..5c389b330 100644 --- a/env/server.ts +++ b/env/server.ts @@ -93,7 +93,7 @@ export const env = createEnv({ .refine((s) => s === "true" || s === "false") // transform to boolean .transform((s) => s === "true") - .default("false"), + .default("true"), ENABLE_BOOKING_WIDGET: z .string() // only allow "true" or "false" @@ -107,7 +107,7 @@ export const env = createEnv({ .refine((s) => s === "true" || s === "false") // transform to boolean .transform((s) => s === "true") - .default("false"), + .default("true"), SHOW_SITE_WIDE_ALERT: z .string() // only allow "true" or "false" diff --git a/types/components/tracking.ts b/types/components/tracking.ts index af8eaaf22..7226da977 100644 --- a/types/components/tracking.ts +++ b/types/components/tracking.ts @@ -84,10 +84,21 @@ export type TrackingSDKHotelInfo = { searchType?: "destination" | "hotel" } +export type TrackingSDKPaymentInfo = { + edccCurrencyFrom?: string + edccCurrencyTo?: string + isedcc?: string + isSavedCard?: boolean + isCreditCard?: boolean + paymentStatus?: "confirmed" + paymentType?: string +} + export type TrackingSDKProps = { pageData: TrackingSDKPageData userData: TrackingSDKUserData hotelInfo?: TrackingSDKHotelInfo + paymentInfo?: TrackingSDKPaymentInfo } export type TrackingSDKData = TrackingSDKPageData & {