refactor(SW-302)

This commit is contained in:
Matilda Landström
2024-10-07 17:30:24 +02:00
parent df5b6be4f8
commit 150f0f0e4e
6 changed files with 46 additions and 56 deletions

View File

@@ -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[],
}
}