import { z } from "zod" import { teaserCardBlockRefsSchema, teaserCardBlockSchema, transformCardBlockRefs, transformTeaserCardBlock, } from "../blocks/cardsGrid" import { SidebarEnums } from "@/types/enums/sidebar" export const contentCardsSchema = z.object({ typename: z .literal(SidebarEnums.blocks.ContentCard) .optional() .default(SidebarEnums.blocks.ContentCard), content_card: z .object({ theme: z.enum(["featured", "default"]).nullable().default("default"), content_cardConnection: z.object({ edges: z.array( z.object({ node: teaserCardBlockSchema, }) ), }), }) .transform((data) => { return { ...transformTeaserCardBlock(data.content_cardConnection.edges[0].node), theme: data.theme, } }), }) export const contentCardRefschema = z.object({ content_card: z .object({ content_cardConnection: z.object({ edges: z.array( z.object({ node: teaserCardBlockRefsSchema, }) ), }), }) .transform((data) => { let card = null if (data.content_cardConnection.edges.length) { card = transformCardBlockRefs(data.content_cardConnection.edges[0].node) } return card }), })