fix(SW-302): update handling of activity card
This commit is contained in:
@@ -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) => (
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 = []
|
||||
|
||||
|
||||
Reference in New Issue
Block a user