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 { getLang } from "@/i18n/serverContext"
import { setFacilityCards } from "@/utils/facilityCards" import { setFacilityCards } from "@/utils/facilityCards"
import { generateHotelSchema } from "@/utils/jsonSchemas" import { generateHotelSchema } from "@/utils/jsonSchemas"
import { safeTry } from "@/utils/safeTry"
import DynamicMap from "./Map/DynamicMap" import DynamicMap from "./Map/DynamicMap"
import MapCard from "./Map/MapCard" import MapCard from "./Map/MapCard"
@@ -46,15 +47,24 @@ import { PageContentTypeEnum } from "@/types/requests/contentType"
export default async function HotelPage({ hotelId }: HotelPageProps) { export default async function HotelPage({ hotelId }: HotelPageProps) {
const lang = getLang() const lang = getLang()
const [hotelPageData, hotelData, meetingRoomsData] = await Promise.all([
getHotelPage(), void getHotelPage()
getHotel({ void getHotel({
hotelId, hotelId,
isCardOnlyPayment: false, isCardOnlyPayment: false,
language: lang, language: lang,
}), })
getMeetingRooms({ hotelId, 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 googleMapsApiKey = env.GOOGLE_STATIC_MAP_KEY
const googleMapId = env.GOOGLE_DYNAMIC_MAP_ID const googleMapId = env.GOOGLE_DYNAMIC_MAP_ID
@@ -102,7 +112,7 @@ export default async function HotelPage({ hotelId }: HotelPageProps) {
const { spaPage, activitiesCards } = content const { spaPage, activitiesCards } = content
const hasRestaurants = restaurants.length > 0 const hasRestaurants = restaurants.length > 0
const hasMeetingRooms = meetingRoomsData.length > 0 const hasMeetingRooms = !!meetingRoomsData?.length
const hasWellness = healthFacilities.length > 0 const hasWellness = healthFacilities.length > 0
const facilities = setFacilityCards( const facilities = setFacilityCards(
@@ -264,7 +274,7 @@ export default async function HotelPage({ hotelId }: HotelPageProps) {
<MeetingsAndConferencesSidePeek <MeetingsAndConferencesSidePeek
meetingFacilities={conferencesAndMeetings} meetingFacilities={conferencesAndMeetings}
descriptions={hotelContent.texts.meetingDescription} descriptions={hotelContent.texts.meetingDescription}
meetingRooms={meetingRoomsData} meetingRooms={meetingRoomsData ?? []}
meetingPageUrl={ meetingPageUrl={
displayWebPage.meetingRoom ? meetingRooms.nameInUrl : undefined 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 Title from "@/components/TempDesignSystem/Text/Title"
import { getIntl } from "@/i18n" import { getIntl } from "@/i18n"
import { getLang } from "@/i18n/serverContext" import { getLang } from "@/i18n/serverContext"
import { safeTry } from "@/utils/safeTry"
import MeetingsAdditionalContent from "./AdditionalContent/Meetings" import MeetingsAdditionalContent from "./AdditionalContent/Meetings"
import HotelSubpageAdditionalContent from "./AdditionalContent" import HotelSubpageAdditionalContent from "./AdditionalContent"
@@ -54,10 +55,10 @@ export default async function HotelSubpage({
const { hotel, restaurants, additionalData } = hotelData const { hotel, restaurants, additionalData } = hotelData
let meetingRooms const [meetingRooms] =
if (hotelData.additionalData.meetingRooms.nameInUrl === subpage) { hotelData.additionalData.meetingRooms.nameInUrl === subpage
meetingRooms = await getMeetingRooms({ hotelId, language: lang }) ? await safeTry(getMeetingRooms({ hotelId, language: lang }))
} : []
const restaurantButton = restaurants.find( const restaurantButton = restaurants.find(
(restaurant) => restaurant.nameInUrl === subpage (restaurant) => restaurant.nameInUrl === subpage