Merged in feat/SW-1391-join-scandic-friends-startpage (pull request #1260)

feat(SW-1391): add join scandic friends block

Approved-by: Chuma Mcphoy (We Ahead)
This commit is contained in:
Christian Andolf
2025-02-06 15:05:06 +00:00
14 changed files with 348 additions and 4 deletions

View File

@@ -0,0 +1,36 @@
import { z } from "zod"
import { tempImageVaultAssetSchema } from "../imageVault"
import { buttonSchema } from "./utils/buttonLinkSchema"
import { linkConnectionRefsSchema } from "./utils/linkConnection"
import { BlocksEnums } from "@/types/enums/blocks"
export const joinScandicFriendsSchema = z.object({
join_scandic_friends: z.object({
show_header: z.boolean().default(false),
scripted_top_title: z.string(),
title: z.string(),
preamble: z.string(),
image: tempImageVaultAssetSchema,
show_usp: z.boolean().default(false),
usp: z.array(z.string()),
has_primary_button: z.boolean().default(false),
primary_button: buttonSchema,
}),
})
export const joinScandicFriendsBlockSchema = z
.object({
typename: z
.literal(BlocksEnums.block.JoinScandicFriends)
.optional()
.default(BlocksEnums.block.JoinScandicFriends),
})
.merge(joinScandicFriendsSchema)
export const joinScandicFriendsBlockRefsSchema = z.object({
join_scandic_friends: z.object({
primary_button: linkConnectionRefsSchema,
}),
})

View File

@@ -14,6 +14,10 @@ import {
fullWidthCampaignBlockRefsSchema,
fullWidthCampaignBlockSchema,
} from "../schemas/blocks/fullWidthCampaign"
import {
joinScandicFriendsBlockRefsSchema,
joinScandicFriendsBlockSchema,
} from "../schemas/blocks/joinScandicFriends"
import { tempImageVaultAssetSchema } from "../schemas/imageVault"
import { systemSchema } from "../schemas/system"
@@ -37,10 +41,17 @@ const startPageFullWidthCampaign = z
})
.merge(fullWidthCampaignBlockSchema)
const startPageJoinScandicFriends = z
.object({
__typename: z.literal(StartPageEnum.ContentStack.blocks.JoinScandicFriends),
})
.merge(joinScandicFriendsBlockSchema)
export const blocksSchema = z.discriminatedUnion("__typename", [
startPageCards,
startPageFullWidthCampaign,
startPageCarouselCards,
startPageJoinScandicFriends,
])
export const startPageSchema = z.object({
@@ -82,10 +93,17 @@ const startPageCarouselCardsRef = z
})
.merge(carouselCardsRefsSchema)
const startPageJoinScandicFriendsRef = z
.object({
__typename: z.literal(StartPageEnum.ContentStack.blocks.JoinScandicFriends),
})
.merge(joinScandicFriendsBlockRefsSchema)
const startPageBlockRefsItem = z.discriminatedUnion("__typename", [
startPageCardsRefs,
startPageFullWidthCampaignRef,
startPageCarouselCardsRef,
startPageJoinScandicFriendsRef,
])
export const startPageRefsSchema = z.object({