Merged in feat/SW-1443-carousel-destination-overview-page (pull request #1289)

feat(SW-1443): added carousel block on hotel overview page

* feat(SW-1443): added carousel block on hotel overview page


Approved-by: Fredrik Thorsson
Approved-by: Matilda Landström
Approved-by: Chuma Mcphoy (We Ahead)
This commit is contained in:
Erik Tiekstra
2025-02-11 06:56:38 +00:00
parent a86f0f3993
commit f021c60c2a
11 changed files with 177 additions and 30 deletions

View File

@@ -24,10 +24,8 @@ const carouselCardsWithFilters = z.object({
enable_filters: z.literal(true),
card_groups: z.array(
z.object({
filter_category: z.object({
filter_identifier: z.nativeEnum(CarouselCardFilterEnum),
filter_label: z.string(),
}),
filter_identifier: z.nativeEnum(CarouselCardFilterEnum),
filter_label: z.string(),
cardConnection: z.object({
edges: z.array(z.object({ node: contentCardSchema })),
}),
@@ -40,10 +38,8 @@ const carouselCardsWithoutFilters = z.object({
enable_filters: z.literal(false),
card_groups: z.array(
z.object({
filter_category: z.object({
filter_identifier: z.null(),
filter_label: z.string(),
}),
filter_identifier: z.null(),
filter_label: z.string(),
cardConnection: z.object({
edges: z.array(z.object({ node: contentCardSchema })),
}),
@@ -74,7 +70,6 @@ export const carouselCardsSchema = z.object({
)
)
.filter((card): card is NonNullable<typeof card> => card !== null),
defaultFilter: null,
link: data.link
? { href: data.link.href, text: data.link.title }
: undefined,
@@ -87,11 +82,11 @@ export const carouselCardsSchema = z.object({
label: string
}>
>((acc, group) => {
const identifier = group.filter_category.filter_identifier
const identifier = group.filter_identifier
if (!acc.some((category) => category.identifier === identifier)) {
acc.push({
identifier,
label: group.filter_category.filter_label,
label: group.filter_label,
})
}
return acc
@@ -107,11 +102,11 @@ export const carouselCardsSchema = z.object({
.filter((card): card is NonNullable<typeof card> => card !== null)
.map((card) => ({
...card,
filterId: group.filter_category.filter_identifier,
filterId: group.filter_identifier,
}))
),
defaultFilter:
data.card_groups[0]?.filter_category.filter_identifier ??
data.card_groups[0]?.filter_identifier ??
filterCategories[0]?.identifier,
link: data.link
? { href: data.link.href, text: data.link.title }