Merged in feat/SW-682-hotel-page-update-navigation-headers (pull request #1193)

feat/SW-682-hotel-page-update-navigation-headers

* feat(SW-682): fetch tab values

* feat(SW-682): change key name


Approved-by: Erik Tiekstra
Approved-by: Matilda Landström
This commit is contained in:
Fredrik Thorsson
2025-01-22 10:34:14 +00:00
parent eacca33847
commit 545edf3545
5 changed files with 87 additions and 39 deletions

View File

@@ -36,38 +36,55 @@ export const contentBlock = z.discriminatedUnion("__typename", [
])
export const hotelPageSchema = z.object({
hotel_page: z.object({
content: discriminatedUnionArray(contentBlock.options)
.nullable()
.transform((data) => {
let spaPage: SpaPage | undefined
let activitiesCards: ActivitiesCard[] = []
data?.map((block) => {
switch (block.typename) {
case HotelPageEnum.ContentStack.blocks.ActivitiesCard:
activitiesCards.push(block)
break
case HotelPageEnum.ContentStack.blocks.SpaPage:
spaPage = block
break
default:
break
}
hotel_page: z
.object({
hotel_navigation: z
.object({
overview: z.string().optional(),
rooms: z.string().optional(),
restaurant_bar: z.string().optional(),
conferences_meetings: z.string().optional(),
health_wellness: z.string().optional(),
activities: z.string().optional(),
offers: z.string().optional(),
faq: z.string().optional(),
})
return { spaPage, activitiesCards }
}),
faq: hotelFaqSchema,
hotel_page_id: z.string(),
title: z.string(),
url: z.string(),
system: systemSchema.merge(
z.object({
created_at: z.string(),
updated_at: z.string(),
})
),
}),
.nullable(),
content: discriminatedUnionArray(contentBlock.options)
.nullable()
.transform((data) => {
let spaPage: SpaPage | undefined
let activitiesCards: ActivitiesCard[] = []
data?.map((block) => {
switch (block.typename) {
case HotelPageEnum.ContentStack.blocks.ActivitiesCard:
activitiesCards.push(block)
break
case HotelPageEnum.ContentStack.blocks.SpaPage:
spaPage = block
break
default:
break
}
})
return { spaPage, activitiesCards }
}),
faq: hotelFaqSchema,
hotel_page_id: z.string(),
title: z.string(),
url: z.string(),
system: systemSchema.merge(
z.object({
created_at: z.string(),
updated_at: z.string(),
})
),
})
.transform(({ hotel_navigation, ...rest }) => ({
tabValues: hotel_navigation,
...rest,
})),
})
/** REFS */