feat: tracking - added discount property and some basics for paymentInfo
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 (
|
||||
<>
|
||||
<Confirmation booking={booking} hotel={hotel} room={room} />
|
||||
@@ -76,6 +81,7 @@ export default async function BookingConfirmation({
|
||||
<TrackingSDK
|
||||
pageData={initialPageTrackingData}
|
||||
hotelInfo={initialHotelsTrackingData}
|
||||
// paymentInfo={null}
|
||||
/>
|
||||
</Suspense>
|
||||
</>
|
||||
|
||||
@@ -29,6 +29,7 @@ export default function RouterTransition({
|
||||
pageData,
|
||||
userData,
|
||||
hotelInfo,
|
||||
paymentInfo,
|
||||
}: TrackingSDKProps) {
|
||||
const [loading, setLoading] = useOptimistic(false)
|
||||
const [status, setStatus] = useState<TransitionStatus>(
|
||||
@@ -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
|
||||
|
||||
@@ -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}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
4
env/server.ts
vendored
4
env/server.ts
vendored
@@ -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"
|
||||
|
||||
@@ -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 & {
|
||||
|
||||
Reference in New Issue
Block a user