Merged in fix/handle-no-meetingrooms (pull request #1563)

Fix/handle no meetingrooms

* feat/meeting-rooms: handle no meeting rooms

* Cleanup


Approved-by: Anton Gunnarsson
Approved-by: Matilda Landström
This commit is contained in:
Linus Flood
2025-03-18 10:36:40 +00:00
parent d0b6f3f8b3
commit fc219aaec0
2 changed files with 26 additions and 15 deletions

View File

@@ -16,6 +16,7 @@ import TrackingSDK from "@/components/TrackingSDK"
import { getLang } from "@/i18n/serverContext"
import { setFacilityCards } from "@/utils/facilityCards"
import { generateHotelSchema } from "@/utils/jsonSchemas"
import { safeTry } from "@/utils/safeTry"
import DynamicMap from "./Map/DynamicMap"
import MapCard from "./Map/MapCard"
@@ -46,15 +47,24 @@ import { PageContentTypeEnum } from "@/types/requests/contentType"
export default async function HotelPage({ hotelId }: HotelPageProps) {
const lang = getLang()
const [hotelPageData, hotelData, meetingRoomsData] = await Promise.all([
getHotelPage(),
getHotel({
hotelId,
isCardOnlyPayment: false,
language: lang,
}),
getMeetingRooms({ hotelId, language: lang }),
])
void getHotelPage()
void getHotel({
hotelId,
isCardOnlyPayment: false,
language: lang,
})
const hotelPageData = await getHotelPage()
const hotelData = await getHotel({
hotelId,
isCardOnlyPayment: false,
language: lang,
})
const [meetingRoomsData] = await safeTry(
getMeetingRooms({ hotelId, language: lang })
)
const googleMapsApiKey = env.GOOGLE_STATIC_MAP_KEY
const googleMapId = env.GOOGLE_DYNAMIC_MAP_ID
@@ -102,7 +112,7 @@ export default async function HotelPage({ hotelId }: HotelPageProps) {
const { spaPage, activitiesCards } = content
const hasRestaurants = restaurants.length > 0
const hasMeetingRooms = meetingRoomsData.length > 0
const hasMeetingRooms = !!meetingRoomsData?.length
const hasWellness = healthFacilities.length > 0
const facilities = setFacilityCards(
@@ -264,7 +274,7 @@ export default async function HotelPage({ hotelId }: HotelPageProps) {
<MeetingsAndConferencesSidePeek
meetingFacilities={conferencesAndMeetings}
descriptions={hotelContent.texts.meetingDescription}
meetingRooms={meetingRoomsData}
meetingRooms={meetingRoomsData ?? []}
meetingPageUrl={
displayWebPage.meetingRoom ? meetingRooms.nameInUrl : undefined
}

View File

@@ -16,6 +16,7 @@ import Preamble from "@/components/TempDesignSystem/Text/Preamble"
import Title from "@/components/TempDesignSystem/Text/Title"
import { getIntl } from "@/i18n"
import { getLang } from "@/i18n/serverContext"
import { safeTry } from "@/utils/safeTry"
import MeetingsAdditionalContent from "./AdditionalContent/Meetings"
import HotelSubpageAdditionalContent from "./AdditionalContent"
@@ -54,10 +55,10 @@ export default async function HotelSubpage({
const { hotel, restaurants, additionalData } = hotelData
let meetingRooms
if (hotelData.additionalData.meetingRooms.nameInUrl === subpage) {
meetingRooms = await getMeetingRooms({ hotelId, language: lang })
}
const [meetingRooms] =
hotelData.additionalData.meetingRooms.nameInUrl === subpage
? await safeTry(getMeetingRooms({ hotelId, language: lang }))
: []
const restaurantButton = restaurants.find(
(restaurant) => restaurant.nameInUrl === subpage