diff --git a/components/ContentType/HotelPage/Facilities/index.tsx b/components/ContentType/HotelPage/Facilities/index.tsx index 04245c573..2b74c629d 100644 --- a/components/ContentType/HotelPage/Facilities/index.tsx +++ b/components/ContentType/HotelPage/Facilities/index.tsx @@ -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 ( {facilities.map((facilityCards: FacilityCards, idx: number) => ( diff --git a/components/ContentType/HotelPage/TabNavigation/index.tsx b/components/ContentType/HotelPage/TabNavigation/index.tsx index b14476189..346db0521 100644 --- a/components/ContentType/HotelPage/TabNavigation/index.tsx +++ b/components/ContentType/HotelPage/TabNavigation/index.tsx @@ -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, diff --git a/components/ContentType/HotelPage/index.tsx b/components/ContentType/HotelPage/index.tsx index 66b5bb46d..b48f97b62 100644 --- a/components/ContentType/HotelPage/index.tsx +++ b/components/ContentType/HotelPage/index.tsx @@ -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 = { diff --git a/lib/graphql/Query/HotelPage/HotelPage.graphql b/lib/graphql/Query/HotelPage/HotelPage.graphql index dee41c6a8..9e90f069c 100644 --- a/lib/graphql/Query/HotelPage/HotelPage.graphql +++ b/lib/graphql/Query/HotelPage/HotelPage.graphql @@ -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 } } } diff --git a/utils/facilityCards.ts b/utils/facilityCards.ts index 578237f55..051679e9a 100644 --- a/utils/facilityCards.ts +++ b/utils/facilityCards.ts @@ -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 = []