refactor(SW-302)
This commit is contained in:
@@ -20,11 +20,11 @@ import type { Amenities, Facility } from "@/types/hotel"
|
||||
import type { CardProps } from "@/components/TempDesignSystem/Card/card"
|
||||
|
||||
export function isFacilityCard(card: FacilityCardType): card is FacilityCard {
|
||||
return (card as FacilityCard).heading != undefined
|
||||
return "heading" in card
|
||||
}
|
||||
|
||||
export function isFacilityImage(card: FacilityCardType): card is FacilityCard {
|
||||
return (card as FacilityImage).backgroundImage != undefined
|
||||
export function isFacilityImage(card: FacilityCardType): card is FacilityImage {
|
||||
return "backgroundImage" in card
|
||||
}
|
||||
|
||||
function setCardProps(
|
||||
@@ -35,10 +35,10 @@ function setCardProps(
|
||||
scriptedTopTitle: string
|
||||
): FacilityCard {
|
||||
return {
|
||||
theme: theme,
|
||||
theme,
|
||||
id: href,
|
||||
heading: heading,
|
||||
scriptedTopTitle: scriptedTopTitle,
|
||||
heading,
|
||||
scriptedTopTitle,
|
||||
secondaryButton: {
|
||||
href: `?s=${href}`,
|
||||
title: buttonText,
|
||||
@@ -49,13 +49,11 @@ function setCardProps(
|
||||
|
||||
export function setFacilityCardGrids(facilities: Facility[]): Facilities {
|
||||
const lang = getLang()
|
||||
const cards: Facilities = []
|
||||
|
||||
facilities.forEach(async (facility) => {
|
||||
const grid: FacilityGrid = []
|
||||
const cards: Facilities = facilities.map((facility) => {
|
||||
let card: FacilityCard
|
||||
|
||||
facility.heroImages.slice(0, 2).forEach((image) => {
|
||||
const grid: FacilityGrid = facility.heroImages.slice(0, 2).map((image) => {
|
||||
// Can be a maximum 2 images per grid
|
||||
const img: FacilityImage = {
|
||||
backgroundImage: {
|
||||
@@ -70,7 +68,7 @@ export function setFacilityCardGrids(facilities: Facility[]): Facilities {
|
||||
theme: "image",
|
||||
id: image.imageSizes.large,
|
||||
}
|
||||
grid.push(img)
|
||||
return img
|
||||
})
|
||||
|
||||
switch (facility.id) {
|
||||
@@ -108,7 +106,7 @@ export function setFacilityCardGrids(facilities: Facility[]): Facilities {
|
||||
grid.unshift(card)
|
||||
break
|
||||
}
|
||||
cards.push(grid)
|
||||
return grid
|
||||
})
|
||||
return cards
|
||||
}
|
||||
@@ -131,3 +129,13 @@ export function getRestaurantHeading(amenities: Amenities): RestaurantHeadings {
|
||||
}
|
||||
return RestaurantHeadings.breakfastRestaurant
|
||||
}
|
||||
|
||||
export function filterFacilityCards(cards: FacilityGrid) {
|
||||
const card = cards.filter((card) => isFacilityCard(card))
|
||||
const images = cards.filter((card) => isFacilityImage(card))
|
||||
|
||||
return {
|
||||
card: card[0] as FacilityCard,
|
||||
images: images as FacilityImage[],
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user