diff --git a/components/ContentType/HotelPage/Facilities/mockData.ts b/components/ContentType/HotelPage/Facilities/mockData.ts
index dfea0a74b..a54a39309 100644
--- a/components/ContentType/HotelPage/Facilities/mockData.ts
+++ b/components/ContentType/HotelPage/Facilities/mockData.ts
@@ -141,4 +141,19 @@ export const MOCK_FACILITIES: Facilities = [
columnSpan: "one",
},
],
+ [
+ {
+ id: "activities",
+ theme: "primaryDark",
+ scriptedTopTitle: "Activities",
+ heading: "Upcoming activities at DownTown Camper",
+ bodyText: "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
+ secondaryButton: {
+ href: `?s=${activities[lang]}`,
+ title: "Discover activities",
+ isExternal: false,
+ },
+ columnSpan: "three",
+ },
+ ],
]
diff --git a/components/ContentType/HotelPage/Facilities/utils.ts b/components/ContentType/HotelPage/Facilities/utils.ts
deleted file mode 100644
index 32d49ee4b..000000000
--- a/components/ContentType/HotelPage/Facilities/utils.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import type { Facility } from "@/types/components/hotelPage/facilities"
-import type { ImageVaultAsset } from "@/types/components/imageVault"
-
-type ActivityCard = {
- background_image?: ImageVaultAsset
- scripted_title?: string
- heading: string
- body_text: string
- cta_text: string
- contentPage: Array<{ href: string }>
-}
-
-export function setActivityCard(activitiesCard: ActivityCard): Facility {
- const hasImage = activitiesCard.background_image
- return [
- {
- id: "activities",
- theme: hasImage ? "image" : "primaryDark",
- scriptedTopTitle: activitiesCard.scripted_title,
- heading: activitiesCard.heading,
- bodyText: activitiesCard.body_text,
- backgroundImage: hasImage ? activitiesCard.background_image : undefined,
- primaryButton: hasImage
- ? {
- href: activitiesCard.contentPage[0].href,
- title: activitiesCard.cta_text,
- isExternal: false,
- }
- : undefined,
- secondaryButton: hasImage
- ? undefined
- : {
- href: activitiesCard.contentPage[0].href,
- title: activitiesCard.cta_text,
- isExternal: false,
- },
- columnSpan: "three",
- },
- ]
-}
-
-export function getCardTheme() {
- // TODO
-}
diff --git a/components/ContentType/HotelPage/TabNavigation/index.tsx b/components/ContentType/HotelPage/TabNavigation/index.tsx
index 2adf3dc0b..4a36a9324 100644
--- a/components/ContentType/HotelPage/TabNavigation/index.tsx
+++ b/components/ContentType/HotelPage/TabNavigation/index.tsx
@@ -12,7 +12,6 @@ export default function TabNavigation() {
const hash = useHash()
const intl = useIntl()
const hotelTabLinks: { href: HotelHashValues; text: string }[] = [
- // TODO these titles will need to reflect the facility card titles, which will vary between hotels
{ href: HotelHashValues.overview, text: "Overview" },
{ href: HotelHashValues.rooms, text: "Rooms" },
{ href: HotelHashValues.restaurant, text: "Restaurant & Bar" },
diff --git a/components/ContentType/HotelPage/index.tsx b/components/ContentType/HotelPage/index.tsx
index cbd171f33..6b5abc9dd 100644
--- a/components/ContentType/HotelPage/index.tsx
+++ b/components/ContentType/HotelPage/index.tsx
@@ -1,7 +1,6 @@
import { serverClient } from "@/lib/trpc/server"
import { MOCK_FACILITIES } from "./Facilities/mockData"
-import { setActivityCard } from "./Facilities/utils"
import AmenitiesList from "./AmenitiesList"
import Facilities from "./Facilities"
import IntroSection from "./IntroSection"
@@ -29,11 +28,8 @@ export default async function HotelPage() {
hotelDetailedFacilities,
hotelImages,
roomCategories,
- activitiesCard,
} = hotelData
- MOCK_FACILITIES.push(setActivityCard(activitiesCard))
-
return (
diff --git a/lib/graphql/Query/HotelPage.graphql b/lib/graphql/Query/HotelPage.graphql
index 39e4e230f..84de71e64 100644
--- a/lib/graphql/Query/HotelPage.graphql
+++ b/lib/graphql/Query/HotelPage.graphql
@@ -3,34 +3,6 @@ query GetHotelPage($locale: String!, $uid: String!) {
hotel_page_id
url
title
- content {
- ... on HotelPageContentUpcomingActivitiesCard {
- __typename
- upcoming_activities_card {
- background_image
- cta_text
- heading
- body_text
- open_in_new_tab
- scripted_title
- hotel_page_activities_content_pageConnection {
- edges {
- node {
- ... on ContentPage {
- url
- web {
- original_url
- }
- system {
- locale
- }
- }
- }
- }
- }
- }
- }
- }
}
}
diff --git a/server/routers/contentstack/hotelPage/output.ts b/server/routers/contentstack/hotelPage/output.ts
index 1002fc80c..3c002e50a 100644
--- a/server/routers/contentstack/hotelPage/output.ts
+++ b/server/routers/contentstack/hotelPage/output.ts
@@ -1,50 +1,6 @@
import { z } from "zod"
-import { HotelBlocksTypenameEnum } from "@/types/components/hotelPage/enums"
-
-export const activityCardSchema = z.object({
- background_image: z.any(),
- cta_text: z.string(),
- heading: z.string(),
- open_in_new_tab: z.boolean(),
- scripted_title: z.string().optional(),
- body_text: z.string(),
- hotel_page_activities_content_pageConnection: z.object({
- edges: z.array(
- z.object({
- node: z.object({
- url: z.string(),
- web: z.object({
- original_url: z.string().optional(),
- }),
- system: z.object({
- locale: z.string(),
- }),
- }),
- })
- ),
- }),
-})
-
export const validateHotelPageSchema = z.object({
- hotel_page: z.object({
- hotel_page_id: z.string(),
- title: z.string(),
- url: z.string(),
- content: z
- .array(
- z.object({
- __typename: z.literal(
- HotelBlocksTypenameEnum.HotelPageContentUpcomingActivitiesCard
- ),
- upcoming_activities_card: activityCardSchema.optional(),
- })
- )
- .optional(),
- }),
-})
-
-export const hotelPageSchema = z.object({
hotel_page: z.object({
hotel_page_id: z.string(),
title: z.string(),
@@ -56,6 +12,5 @@ export const hotelPageSchema = z.object({
export type HotelPageDataRaw = z.infer
type HotelPageRaw = HotelPageDataRaw["hotel_page"]
-export type HotelPage = HotelPageRaw
-export type ActivityCard = z.infer
+export type HotelPage = HotelPageRaw
diff --git a/server/routers/hotels/query.ts b/server/routers/hotels/query.ts
index 50d4d0507..731b08306 100644
--- a/server/routers/hotels/query.ts
+++ b/server/routers/hotels/query.ts
@@ -17,9 +17,6 @@ import {
} from "@/server/trpc"
import { toApiLang } from "@/server/utils"
-import { makeImageVaultImage } from "@/utils/imageVault"
-import { removeMultipleSlashes } from "@/utils/url"
-
import {
HotelPageDataRaw,
validateHotelPageSchema,
@@ -40,7 +37,6 @@ import {
import tempFilterData from "./tempFilterData.json"
import tempRatesData from "./tempRatesData.json"
-import { HotelBlocksTypenameEnum } from "@/types/components/hotelPage/enums"
import { AvailabilityEnum } from "@/types/components/hotelReservation/selectHotel/selectHotel"
const meter = metrics.getMeter("trpc.hotels")
@@ -56,10 +52,7 @@ const availabilityFailCounter = meter.createCounter(
"trpc.hotel.availability-fail"
)
-async function getContenstackData(
- locale: string,
- uid: string | null | undefined
-) {
+async function getHotelId(locale: string, uid: string | null | undefined) {
const rawContentStackData = await request(GetHotelPage, {
locale,
uid,
@@ -81,7 +74,7 @@ async function getContenstackData(
return null
}
- return hotelPageData.data.hotel_page
+ return hotelPageData.data.hotel_page.hotel_page_id
}
export const hotelQueryRouter = router({
@@ -90,8 +83,7 @@ export const hotelQueryRouter = router({
.query(async ({ ctx, input }) => {
const { lang, uid } = ctx
const { include } = input
- const contentstackData = await getContenstackData(lang, uid)
- const hotelId = contentstackData?.hotel_page_id
+ const hotelId = await getHotelId(lang, uid)
if (!hotelId) {
throw notFound(`Hotel not found for uid: ${uid}`)
@@ -211,32 +203,6 @@ export const hotelQueryRouter = router({
})
: []
- const activities = contentstackData?.content
- ? contentstackData.content.map((block: any) => {
- switch (block.__typename) {
- case HotelBlocksTypenameEnum.HotelPageContentUpcomingActivitiesCard:
- return {
- ...block.upcoming_activities_card,
- background_image: makeImageVaultImage(
- block.upcoming_activities_card.background_image
- ),
- contentPage:
- block.upcoming_activities_card?.hotel_page_activities_content_pageConnection?.edges.map(
- ({ node: contentPage }: { node: any }) => {
- return {
- href:
- contentPage.web?.original_url ||
- removeMultipleSlashes(
- `/${contentPage.system.locale}/${contentPage.url}`
- ),
- }
- }
- ),
- }
- }
- })[0]
- : null
-
getHotelSuccessCounter.add(1, { hotelId, lang, include })
console.info(
"api.hotels.hotel success",
@@ -253,7 +219,6 @@ export const hotelQueryRouter = router({
hotelDetailedFacilities: hotelAttributes.detailedFacilities,
hotelImages: images,
roomCategories,
- activitiesCard: activities,
}
}),
availability: router({
diff --git a/types/components/hotelPage/enums.ts b/types/components/hotelPage/enums.ts
deleted file mode 100644
index d7e5f5bec..000000000
--- a/types/components/hotelPage/enums.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export enum HotelBlocksTypenameEnum {
- HotelPageContentUpcomingActivitiesCard = "HotelPageContentUpcomingActivitiesCard",
-}
diff --git a/utils/cardTheme.ts b/utils/cardTheme.ts
index 6e8bfb700..39f42a4c1 100644
--- a/utils/cardTheme.ts
+++ b/utils/cardTheme.ts
@@ -38,11 +38,7 @@ export function getTheme(theme: CardProps["theme"]) {
primaryLinkColor = "pale"
secondaryLinkColor = "burgundy"
break
- case "primaryStrong":
- buttonTheme = "primaryStrong"
- primaryLinkColor = "red"
- secondaryLinkColor = "white"
- case "image":
+ case "primaryStrong" || "image":
buttonTheme = "primaryStrong"
primaryLinkColor = "red"
secondaryLinkColor = "white"