feat(SW-2285): Added campaign essentials block on campaign page

Approved-by: Christian Andolf
Approved-by: Matilda Landström
This commit is contained in:
Erik Tiekstra
2025-06-11 08:14:00 +00:00
parent c5e2fc7805
commit b4a05dae0b
18 changed files with 287 additions and 11 deletions

View File

@@ -1,7 +1,22 @@
import { z } from "zod"
import { discriminatedUnionArray } from "@/lib/discriminatedUnion"
import { essentialsBlockSchema } from "../schemas/blocks/essentials"
import { systemSchema } from "../schemas/system"
import { CampaignPageEnum } from "@/types/enums/campaignPage"
const campaignPageEssentials = z
.object({
__typename: z.literal(CampaignPageEnum.ContentStack.blocks.Essentials),
})
.merge(essentialsBlockSchema)
export const blocksSchema = z.discriminatedUnion("__typename", [
campaignPageEssentials,
])
export const campaignPageSchema = z.object({
campaign_page: z.object({
title: z.string(),
@@ -13,6 +28,7 @@ export const campaignPageSchema = z.object({
first_column: z.string(),
second_column: z.string(),
}),
blocks: discriminatedUnionArray(blocksSchema.options),
system: systemSchema.merge(
z.object({
created_at: z.string(),