37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
import { z } from "zod"
|
|
|
|
import { transformedImageVaultAssetSchema } from "@scandic-hotels/common/utils/imageVault"
|
|
|
|
import { BlocksEnums } from "../../../../types/blocksEnum"
|
|
import { buttonSchema } from "./utils/buttonLinkSchema"
|
|
import { linkConnectionRefsSchema } from "./utils/linkConnection"
|
|
|
|
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: transformedImageVaultAssetSchema,
|
|
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,
|
|
}),
|
|
})
|