Skip to content

Commit

Permalink
fix: actions and buttons
Browse files Browse the repository at this point in the history
  • Loading branch information
Kneesal committed Feb 3, 2025
1 parent b973ce8 commit 9411a29
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 25 deletions.
11 changes: 11 additions & 0 deletions apps/api-journeys-modern/src/schema/blocks/action/action.zod.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { z } from 'zod'

import { BlockSchema } from '../blocks.zod'

const ActionSchema = z.object({
parentBlockId: z.string(),
parentBlock: BlockSchema,
gtmEventName: z.string().nullable()
})

export { ActionSchema }
27 changes: 2 additions & 25 deletions apps/api-journeys-modern/src/schema/blocks/blocks.zod.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import { z } from 'zod'

import { ActionSchema } from './action/action.zod'
import { ButtonBlockSchema } from './button/button.zod'
import { CardBlockSchema } from './card/card.zod'
import { IconBlockSchema } from './icon/icon.zod'
import { ImageBlockSchema } from './image/image.zod'
Expand All @@ -13,11 +15,6 @@ const BlockSchema = z.object({
parentOrder: z.number().nullable()
})

// Zod schemas for enums
const ButtonVariantSchema = z.enum(['text', 'contained'])
const ButtonColorSchema = z.enum(['primary', 'secondary', 'error', 'inherit'])
const ButtonSizeSchema = z.enum(['small', 'medium', 'large'])

const VideoBlockSourceSchema = z.enum([
'internal',
'youTube',
Expand All @@ -26,26 +23,6 @@ const VideoBlockSourceSchema = z.enum([
])
const VideoBlockObjectFitSchema = z.enum(['fill', 'fit', 'zoomed'])

// Action schema
const ActionSchema = z.object({
parentBlockId: z.string(),
parentBlock: BlockSchema,
gtmEventName: z.string().nullable()
})

// Concrete Block type schemas

// ButtonBlock schema
const ButtonBlockSchema = BlockSchema.extend({
label: z.string(),
variant: ButtonVariantSchema.nullable(),
color: ButtonColorSchema.nullable(),
size: ButtonSizeSchema.nullable(),
startIconId: z.string().nullable(),
endIconId: z.string().nullable(),
action: ActionSchema.nullable()
})

// RadioOptionBlock schema
const RadioOptionBlockSchema = BlockSchema.extend({
label: z.string(),
Expand Down
25 changes: 25 additions & 0 deletions apps/api-journeys-modern/src/schema/blocks/button/button.zod.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { z } from 'zod'

import { ActionSchema } from '../action/action.zod'
import { BlockSchema } from '../blocks.zod'

const ButtonVariantSchema = z.enum(['text', 'contained'])
const ButtonColorSchema = z.enum(['primary', 'secondary', 'error', 'inherit'])
const ButtonSizeSchema = z.enum(['small', 'medium', 'large'])

const ButtonBlockSchema = BlockSchema.extend({
label: z.string(),
variant: ButtonVariantSchema.nullable(),
color: ButtonColorSchema.nullable(),
size: ButtonSizeSchema.nullable(),
startIconId: z.string().nullable(),
endIconId: z.string().nullable(),
action: ActionSchema.nullable()
})

export {
ButtonBlockSchema,
ButtonVariantSchema,
ButtonColorSchema,
ButtonSizeSchema
}

0 comments on commit 9411a29

Please sign in to comment.