Merged in feat(SW-1722)-mystay-multiroom-view (pull request #1396)

Feat(SW-1722) mystay multiroom view

* feat(SW-1722) View all rooms on my stay

* feat(sW-1722) Show linked reservation

* feat(SW-1722) merged monorepo

* feat(SW-1722) yarn install

* feat(SW-1722) removed unused data

* feat(SW-1722) Streaming data from the server to the client


Approved-by: Niclas Edenvin
This commit is contained in:
Pontus Dreij
2025-02-27 07:24:56 +00:00
parent 0c498d82ca
commit 31a536b1f7
11 changed files with 364 additions and 39 deletions

View File

@@ -1,4 +1,5 @@
import { notFound } from "next/navigation"
import { Suspense } from "react"
import { homeHrefs } from "@/constants/homeHrefs"
import { env } from "@/env/server"
@@ -13,9 +14,11 @@ import Image from "@/components/Image"
import { getIntl } from "@/i18n"
import { getLang } from "@/i18n/serverContext"
import LinkedReservationSkeleton from "./LinkedReservation/LinkedReservationSkeleton"
import { Ancillaries } from "./Ancillaries"
import BookingSummary from "./BookingSummary"
import { Header } from "./Header"
import LinkedReservation from "./LinkedReservation"
import Promo from "./Promo"
import { ReferenceCard } from "./ReferenceCard"
import { Room } from "./Room"
@@ -30,6 +33,12 @@ export async function MyStay({ reservationId }: { reservationId: string }) {
const { booking, hotel, room } = bookingConfirmation
const linkedBookingPromises = booking.linkedReservations
? booking.linkedReservations.map((linkedBooking) => {
return getBookingConfirmation(linkedBooking.confirmationNumber)
})
: []
const userResponse = await getProfileSafely()
const user = userResponse && !("error" in userResponse) ? userResponse : null
const intl = await getIntl()
@@ -39,7 +48,6 @@ export async function MyStay({ reservationId }: { reservationId: string }) {
const toDate = dt(booking.checkOutDate).format("YYYY-MM-DD")
const hotelId = hotel.operaId
const ancillaryInput = { fromDate, hotelId, toDate }
void getAncillaryPackages(ancillaryInput)
const ancillaryPackages = await getAncillaryPackages(ancillaryInput)
return (
@@ -70,7 +78,20 @@ export async function MyStay({ reservationId }: { reservationId: string }) {
user={user}
/>
)}
<Room booking={booking} room={room} hotel={hotel} user={user} />
<div>
<Room booking={booking} room={room} hotel={hotel} user={user} />
{booking.linkedReservations.map((linkedRes, index) => (
<Suspense
key={linkedRes.confirmationNumber}
fallback={<LinkedReservationSkeleton />}
>
<LinkedReservation
bookingPromise={linkedBookingPromises[index]}
index={index}
/>
</Suspense>
))}
</div>
<BookingSummary booking={booking} hotel={hotel} />
<Promo
buttonText={intl.formatMessage({ id: "Book another stay" })}