Merged in fix/hotel-faq (pull request #1265)
fix: setting faq section as nullable from CS as CS returns null after import * fix: setting faq section as nullable from CS as CS returns null after import Approved-by: Fredrik Thorsson
This commit is contained in:
@@ -150,7 +150,7 @@ export default async function HotelPage({ hotelId }: HotelPageProps) {
|
||||
<TabNavigation
|
||||
restaurantTitle={getRestaurantHeading(detailedFacilities)}
|
||||
hasActivities={activitiesCards.length > 0}
|
||||
hasFAQ={!!faq.accordions.length}
|
||||
hasFAQ={!!faq?.accordions.length}
|
||||
tabValues={tabValues}
|
||||
/>
|
||||
|
||||
@@ -187,7 +187,7 @@ export default async function HotelPage({ hotelId }: HotelPageProps) {
|
||||
amenities={detailedFacilities}
|
||||
healthFacilities={healthFacilities}
|
||||
/>
|
||||
{faq.accordions.length > 0 && (
|
||||
{faq && faq.accordions.length > 0 && (
|
||||
<AccordionSection accordion={faq.accordions} title={faq.title} />
|
||||
)}
|
||||
</main>
|
||||
|
||||
@@ -70,7 +70,7 @@ export const hotelPageSchema = z.object({
|
||||
})
|
||||
return { spaPage, activitiesCards }
|
||||
}),
|
||||
faq: hotelFaqSchema,
|
||||
faq: hotelFaqSchema.nullable(),
|
||||
hotel_page_id: z.string(),
|
||||
title: z.string(),
|
||||
url: z.string(),
|
||||
|
||||
@@ -1240,7 +1240,7 @@ export const hotelQueryRouter = router({
|
||||
},
|
||||
})
|
||||
)
|
||||
return null
|
||||
return []
|
||||
}
|
||||
|
||||
const apiJson = await apiResponse.json()
|
||||
|
||||
@@ -57,65 +57,69 @@ export function setFacilityCardGrids(
|
||||
): Facilities {
|
||||
const lang = getLang()
|
||||
|
||||
const cards: Facilities = facilities.map((facility) => {
|
||||
let card: FacilityCard
|
||||
const cards: Facilities = facilities
|
||||
.filter((fac) => !!fac.headingText)
|
||||
.map((facility) => {
|
||||
let card: FacilityCard
|
||||
|
||||
const grid: FacilityGrid = facility.heroImages.slice(0, 2).map((image) => {
|
||||
// Can be a maximum 2 images per grid
|
||||
const img: FacilityImage = {
|
||||
backgroundImage: {
|
||||
url: image.imageSizes.large,
|
||||
title: image.metaData.title,
|
||||
meta: {
|
||||
alt: image.metaData.altText,
|
||||
caption: image.metaData.altText_En,
|
||||
},
|
||||
id: image.imageSizes.large,
|
||||
},
|
||||
theme: "image",
|
||||
id: image.imageSizes.large,
|
||||
const grid: FacilityGrid = facility.heroImages
|
||||
.slice(0, 2)
|
||||
.map((image) => {
|
||||
// Can be a maximum 2 images per grid
|
||||
const img: FacilityImage = {
|
||||
backgroundImage: {
|
||||
url: image.imageSizes.large,
|
||||
title: image.metaData.title,
|
||||
meta: {
|
||||
alt: image.metaData.altText,
|
||||
caption: image.metaData.altText_En,
|
||||
},
|
||||
id: image.imageSizes.large,
|
||||
},
|
||||
theme: "image",
|
||||
id: image.imageSizes.large,
|
||||
}
|
||||
return img
|
||||
})
|
||||
|
||||
switch (facility.id) {
|
||||
case FacilityCardTypeEnum.wellness:
|
||||
const wellnessTitle = getWellnessHeading(healthFacilities)
|
||||
card = setCardProps(
|
||||
"one",
|
||||
"Read more about wellness & exercise",
|
||||
wellnessAndExercise[lang],
|
||||
facility.headingText,
|
||||
wellnessTitle
|
||||
)
|
||||
grid.unshift(card)
|
||||
break
|
||||
|
||||
case FacilityCardTypeEnum.conference:
|
||||
card = setCardProps(
|
||||
"primaryDim",
|
||||
"About meetings & conferences",
|
||||
meetingsAndConferences[lang],
|
||||
facility.headingText,
|
||||
"Events that make an impression"
|
||||
)
|
||||
grid.push(card)
|
||||
break
|
||||
|
||||
case FacilityCardTypeEnum.restaurant:
|
||||
const restaurantTitle = getRestaurantHeading(amenities)
|
||||
card = setCardProps(
|
||||
"primaryDark",
|
||||
"Read more & book a table",
|
||||
restaurantAndBar[lang],
|
||||
facility.headingText,
|
||||
restaurantTitle
|
||||
)
|
||||
grid.unshift(card)
|
||||
break
|
||||
}
|
||||
return img
|
||||
return grid
|
||||
})
|
||||
|
||||
switch (facility.id) {
|
||||
case FacilityCardTypeEnum.wellness:
|
||||
const wellnessTitle = getWellnessHeading(healthFacilities)
|
||||
card = setCardProps(
|
||||
"one",
|
||||
"Read more about wellness & exercise",
|
||||
wellnessAndExercise[lang],
|
||||
facility.headingText,
|
||||
wellnessTitle
|
||||
)
|
||||
grid.unshift(card)
|
||||
break
|
||||
|
||||
case FacilityCardTypeEnum.conference:
|
||||
card = setCardProps(
|
||||
"primaryDim",
|
||||
"About meetings & conferences",
|
||||
meetingsAndConferences[lang],
|
||||
facility.headingText,
|
||||
"Events that make an impression"
|
||||
)
|
||||
grid.push(card)
|
||||
break
|
||||
|
||||
case FacilityCardTypeEnum.restaurant:
|
||||
const restaurantTitle = getRestaurantHeading(amenities)
|
||||
card = setCardProps(
|
||||
"primaryDark",
|
||||
"Read more & book a table",
|
||||
restaurantAndBar[lang],
|
||||
facility.headingText,
|
||||
restaurantTitle
|
||||
)
|
||||
grid.unshift(card)
|
||||
break
|
||||
}
|
||||
return grid
|
||||
})
|
||||
return cards
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user