Merged in feat/my-stay-masking (pull request #2116)

Mask values on my-stay and receipt pages SW-2788

* Mask values on my-stay and receipt pages


Approved-by: Joakim Jäderberg
This commit is contained in:
Linus Flood
2025-05-16 09:30:04 +00:00
committed by Joakim Jäderberg
parent f49a13512a
commit 96821c7a6f
3 changed files with 85 additions and 17 deletions

View File

@@ -34,6 +34,7 @@ import Image from "@/components/Image"
import { getIntl } from "@/i18n"
import { setLang } from "@/i18n/serverContext"
import MyStayProvider from "@/providers/MyStay"
import * as maskValue from "@/utils/maskValue"
import { parseRefId } from "@/utils/refId"
import { isValidSession } from "@/utils/session"
import { getCurrentWebUrl } from "@/utils/url"
@@ -42,6 +43,8 @@ import styles from "./page.module.css"
import { BreakfastPackageEnum } from "@/types/enums/breakfast"
import type { LangParams, PageArgs } from "@/types/params"
import type { BookingConfirmation } from "@/types/trpc/routers/booking/confirmation"
import type { SafeUser } from "@/types/user"
export default async function MyStay({
params,
@@ -174,9 +177,31 @@ export default async function MyStay({
promoUrl.searchParams.set("hotel", hotel.operaId)
const maskedBookingConfirmation = {
...bookingConfirmation,
booking: {
...bookingConfirmation.booking,
guest: {
...bookingConfirmation.booking.guest,
email: maskValue.email(bookingConfirmation.booking.guest.email),
phoneNumber: maskValue.phone(
bookingConfirmation.booking.guest.phoneNumber ?? ""
),
},
},
} satisfies BookingConfirmation
const maskedUser = user
? ({
...user,
email: maskValue.email(user.email),
phoneNumber: maskValue.phone(user.phoneNumber ?? ""),
} satisfies SafeUser)
: null
return (
<MyStayProvider
bookingConfirmation={bookingConfirmation}
bookingConfirmation={maskedBookingConfirmation}
breakfastPackages={breakfastPackages}
lang={params.lang}
linkedReservationsPromise={linkedReservationsPromise}
@@ -205,13 +230,13 @@ export default async function MyStay({
<Ancillaries
ancillariesPromise={ancillaryPackagesPromise}
packages={breakfastPackages}
user={user}
user={maskedUser}
savedCreditCards={savedCreditCards}
/>
)}
<SingleRoom user={user} />
<MultiRoom user={user} />
<SingleRoom user={maskedUser} />
<MultiRoom user={maskedUser} />
<BookingSummary hotel={hotel} />
<Promo

View File

@@ -34,6 +34,7 @@ import Image from "@/components/Image"
import { getIntl } from "@/i18n"
import { setLang } from "@/i18n/serverContext"
import MyStayProvider from "@/providers/MyStay"
import * as maskValue from "@/utils/maskValue"
import { parseRefId } from "@/utils/refId"
import { isValidSession } from "@/utils/session"
import { getCurrentWebUrl } from "@/utils/url"
@@ -42,6 +43,8 @@ import styles from "./page.module.css"
import { BreakfastPackageEnum } from "@/types/enums/breakfast"
import type { LangParams, PageArgs } from "@/types/params"
import type { BookingConfirmation } from "@/types/trpc/routers/booking/confirmation"
import type { SafeUser } from "@/types/user"
export default async function MyStay({
params,
@@ -175,11 +178,33 @@ export default async function MyStay({
? new URL(getCurrentWebUrl({ path: "/", lang }))
: new URL(`${baseUrl}/${lang}/`)
const maskedBookingConfirmation = {
...bookingConfirmation,
booking: {
...bookingConfirmation.booking,
guest: {
...bookingConfirmation.booking.guest,
email: maskValue.email(bookingConfirmation.booking.guest.email),
phoneNumber: maskValue.phone(
bookingConfirmation.booking.guest.phoneNumber ?? ""
),
},
},
} satisfies BookingConfirmation
const maskedUser = user
? ({
...user,
email: maskValue.email(user.email),
phoneNumber: maskValue.phone(user.phoneNumber ?? ""),
} satisfies SafeUser)
: null
promoUrl.searchParams.set("hotel", hotel.operaId)
return (
<MyStayProvider
bookingConfirmation={bookingConfirmation}
bookingConfirmation={maskedBookingConfirmation}
breakfastPackages={breakfastPackages}
lang={params.lang}
linkedReservationsPromise={linkedReservationsPromise}
@@ -208,13 +233,13 @@ export default async function MyStay({
<Ancillaries
ancillariesPromise={ancillaryPackagesPromise}
packages={breakfastPackages}
user={user}
user={maskedUser}
savedCreditCards={savedCreditCards}
/>
)}
<SingleRoom user={user} />
<MultiRoom user={user} />
<SingleRoom user={maskedUser} />
<MultiRoom user={maskedUser} />
<BookingSummary hotel={hotel} />
<Promo