fix(SW-302): update handling of activity card

This commit is contained in:
Matilda Landström
2024-10-01 15:43:56 +02:00
parent c12fb9f125
commit c7146e01a7
5 changed files with 29 additions and 24 deletions

View File

@@ -1,4 +1,7 @@
import { activities } from "@/constants/routes/hotelPageParams"
import SectionContainer from "@/components/Section/Container"
import { getLang } from "@/i18n/serverContext"
import CardGrid from "./CardGrid"
@@ -10,6 +13,16 @@ import type {
} from "@/types/components/hotelPage/facilities"
export default async function Facilities({ facilities }: FacilityProps) {
const lang = getLang()
// Put activities card at the end
const activitiesIdx = facilities.findIndex(
(facility) => facility[0].id == activities[lang]
)
if (activitiesIdx != -1) {
facilities.push(facilities.splice(activitiesIdx, 1)[0])
}
return (
<SectionContainer className={styles.grid}>
{facilities.map((facilityCards: FacilityCards, idx: number) => (

View File

@@ -23,7 +23,7 @@ export default function TabNavigation({ restaurantTitle }: TabNavigationProps) {
{ href: HotelHashValues.rooms, text: intl.formatMessage({ id: "Rooms" }) },
{
href: HotelHashValues.restaurant,
text: intl.formatMessage({ id: restaurantTitle }),
text: intl.formatMessage({ id: restaurantTitle }, { count: 1 }),
},
{
href: HotelHashValues.meetings,

View File

@@ -51,11 +51,9 @@ export default async function HotelPage() {
facilityCards,
} = hotelData
const facilities = await setFacilityCards(
facilityCards,
hotelDetailedFacilities
)
//activitiesCard && facilities.push(setActivityCard(activitiesCard))
const facilities = setFacilityCards(facilityCards, hotelDetailedFacilities)
activitiesCard && facilities.push(setActivityCard(activitiesCard))
const topThreePois = pointsOfInterest.slice(0, 3)
const coordinates = {

View File

@@ -1,11 +1,13 @@
#import "../../Fragments/PageLink/ContentPageLink.graphql"
query GetHotelPage($locale: String!, $uid: String!) {
hotel_page(locale: $locale, uid: $uid) {
hotel_page_id
title
url
content {
__typename
... on HotelPageContentUpcomingActivitiesCard {
__typename
upcoming_activities_card {
background_image
cta_text
@@ -16,15 +18,8 @@ query GetHotelPage($locale: String!, $uid: String!) {
hotel_page_activities_content_pageConnection {
edges {
node {
... on ContentPage {
url
web {
original_url
}
system {
locale
}
}
__typename
...ContentPageLink
}
}
}

View File

@@ -1,4 +1,5 @@
import {
activities,
meetingsAndConferences,
restaurantAndBar,
wellnessAndExercise,
@@ -24,14 +25,15 @@ type ActivityCard = {
heading: string
body_text: string
cta_text: string
contentPage: Array<{ href: string }>
contentPage: { href: string }
}
export function setActivityCard(activitiesCard: ActivityCard): FacilityCards {
const lang = getLang()
const hasImage = activitiesCard.background_image
return [
{
id: "activities",
id: activities[lang],
theme: hasImage ? "image" : "primaryDark",
scriptedTopTitle: activitiesCard.scripted_title,
heading: activitiesCard.heading,
@@ -39,7 +41,7 @@ export function setActivityCard(activitiesCard: ActivityCard): FacilityCards {
backgroundImage: hasImage ? activitiesCard.background_image : undefined,
primaryButton: hasImage
? {
href: activitiesCard.contentPage[0].href,
href: activitiesCard.contentPage.href,
title: activitiesCard.cta_text,
isExternal: false,
}
@@ -47,7 +49,7 @@ export function setActivityCard(activitiesCard: ActivityCard): FacilityCards {
secondaryButton: hasImage
? undefined
: {
href: activitiesCard.contentPage[0].href,
href: activitiesCard.contentPage.href,
title: activitiesCard.cta_text,
isExternal: false,
},
@@ -75,10 +77,7 @@ async function setCardProps(
return card
}
export async function setFacilityCards(
facilities: Facility[],
amenities: Amenities
) {
export function setFacilityCards(facilities: Facility[], amenities: Amenities) {
const lang = getLang()
const cards: Facilities = []