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 SectionContainer from "@/components/Section/Container"
|
||||||
|
import { getLang } from "@/i18n/serverContext"
|
||||||
|
|
||||||
import CardGrid from "./CardGrid"
|
import CardGrid from "./CardGrid"
|
||||||
|
|
||||||
@@ -10,6 +13,16 @@ import type {
|
|||||||
} from "@/types/components/hotelPage/facilities"
|
} from "@/types/components/hotelPage/facilities"
|
||||||
|
|
||||||
export default async function Facilities({ facilities }: FacilityProps) {
|
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 (
|
return (
|
||||||
<SectionContainer className={styles.grid}>
|
<SectionContainer className={styles.grid}>
|
||||||
{facilities.map((facilityCards: FacilityCards, idx: number) => (
|
{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.rooms, text: intl.formatMessage({ id: "Rooms" }) },
|
||||||
{
|
{
|
||||||
href: HotelHashValues.restaurant,
|
href: HotelHashValues.restaurant,
|
||||||
text: intl.formatMessage({ id: restaurantTitle }),
|
text: intl.formatMessage({ id: restaurantTitle }, { count: 1 }),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
href: HotelHashValues.meetings,
|
href: HotelHashValues.meetings,
|
||||||
|
|||||||
@@ -51,11 +51,9 @@ export default async function HotelPage() {
|
|||||||
facilityCards,
|
facilityCards,
|
||||||
} = hotelData
|
} = hotelData
|
||||||
|
|
||||||
const facilities = await setFacilityCards(
|
const facilities = setFacilityCards(facilityCards, hotelDetailedFacilities)
|
||||||
facilityCards,
|
|
||||||
hotelDetailedFacilities
|
activitiesCard && facilities.push(setActivityCard(activitiesCard))
|
||||||
)
|
|
||||||
//activitiesCard && facilities.push(setActivityCard(activitiesCard))
|
|
||||||
const topThreePois = pointsOfInterest.slice(0, 3)
|
const topThreePois = pointsOfInterest.slice(0, 3)
|
||||||
|
|
||||||
const coordinates = {
|
const coordinates = {
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
|
#import "../../Fragments/PageLink/ContentPageLink.graphql"
|
||||||
|
|
||||||
query GetHotelPage($locale: String!, $uid: String!) {
|
query GetHotelPage($locale: String!, $uid: String!) {
|
||||||
hotel_page(locale: $locale, uid: $uid) {
|
hotel_page(locale: $locale, uid: $uid) {
|
||||||
hotel_page_id
|
hotel_page_id
|
||||||
title
|
title
|
||||||
url
|
url
|
||||||
content {
|
content {
|
||||||
|
__typename
|
||||||
... on HotelPageContentUpcomingActivitiesCard {
|
... on HotelPageContentUpcomingActivitiesCard {
|
||||||
__typename
|
|
||||||
upcoming_activities_card {
|
upcoming_activities_card {
|
||||||
background_image
|
background_image
|
||||||
cta_text
|
cta_text
|
||||||
@@ -16,15 +18,8 @@ query GetHotelPage($locale: String!, $uid: String!) {
|
|||||||
hotel_page_activities_content_pageConnection {
|
hotel_page_activities_content_pageConnection {
|
||||||
edges {
|
edges {
|
||||||
node {
|
node {
|
||||||
... on ContentPage {
|
__typename
|
||||||
url
|
...ContentPageLink
|
||||||
web {
|
|
||||||
original_url
|
|
||||||
}
|
|
||||||
system {
|
|
||||||
locale
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import {
|
import {
|
||||||
|
activities,
|
||||||
meetingsAndConferences,
|
meetingsAndConferences,
|
||||||
restaurantAndBar,
|
restaurantAndBar,
|
||||||
wellnessAndExercise,
|
wellnessAndExercise,
|
||||||
@@ -24,14 +25,15 @@ type ActivityCard = {
|
|||||||
heading: string
|
heading: string
|
||||||
body_text: string
|
body_text: string
|
||||||
cta_text: string
|
cta_text: string
|
||||||
contentPage: Array<{ href: string }>
|
contentPage: { href: string }
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setActivityCard(activitiesCard: ActivityCard): FacilityCards {
|
export function setActivityCard(activitiesCard: ActivityCard): FacilityCards {
|
||||||
|
const lang = getLang()
|
||||||
const hasImage = activitiesCard.background_image
|
const hasImage = activitiesCard.background_image
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
id: "activities",
|
id: activities[lang],
|
||||||
theme: hasImage ? "image" : "primaryDark",
|
theme: hasImage ? "image" : "primaryDark",
|
||||||
scriptedTopTitle: activitiesCard.scripted_title,
|
scriptedTopTitle: activitiesCard.scripted_title,
|
||||||
heading: activitiesCard.heading,
|
heading: activitiesCard.heading,
|
||||||
@@ -39,7 +41,7 @@ export function setActivityCard(activitiesCard: ActivityCard): FacilityCards {
|
|||||||
backgroundImage: hasImage ? activitiesCard.background_image : undefined,
|
backgroundImage: hasImage ? activitiesCard.background_image : undefined,
|
||||||
primaryButton: hasImage
|
primaryButton: hasImage
|
||||||
? {
|
? {
|
||||||
href: activitiesCard.contentPage[0].href,
|
href: activitiesCard.contentPage.href,
|
||||||
title: activitiesCard.cta_text,
|
title: activitiesCard.cta_text,
|
||||||
isExternal: false,
|
isExternal: false,
|
||||||
}
|
}
|
||||||
@@ -47,7 +49,7 @@ export function setActivityCard(activitiesCard: ActivityCard): FacilityCards {
|
|||||||
secondaryButton: hasImage
|
secondaryButton: hasImage
|
||||||
? undefined
|
? undefined
|
||||||
: {
|
: {
|
||||||
href: activitiesCard.contentPage[0].href,
|
href: activitiesCard.contentPage.href,
|
||||||
title: activitiesCard.cta_text,
|
title: activitiesCard.cta_text,
|
||||||
isExternal: false,
|
isExternal: false,
|
||||||
},
|
},
|
||||||
@@ -75,10 +77,7 @@ async function setCardProps(
|
|||||||
return card
|
return card
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function setFacilityCards(
|
export function setFacilityCards(facilities: Facility[], amenities: Amenities) {
|
||||||
facilities: Facility[],
|
|
||||||
amenities: Amenities
|
|
||||||
) {
|
|
||||||
const lang = getLang()
|
const lang = getLang()
|
||||||
const cards: Facilities = []
|
const cards: Facilities = []
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user