Files
web/server/routers/contentstack/schemas/blocks/sasTierComparison.ts
Anton Gunnarsson fc866c0e4d Merged in feat/sw-1493-revised-comparison-block (pull request #1236)
feat(SW-1493): Revised SAS comparison block

* Base of new TierDetails for SAS tier comparison

* Add backgrounds and content to TierDetails

* Implement new cms schema for SasTierComparison

* Override gap in jsontohtml styling to 0

* Add animations to comparison details

* Redesign again

* Update content model to new design

* Add border to bottom item in tier match list

* Wrap interpolate-size in @supports to be safe

* Merge branch 'master' into feat/sw-1493-revised-comparison-block


Approved-by: Joakim Jäderberg
2025-02-03 08:42:16 +00:00

50 lines
1.3 KiB
TypeScript

import { z } from "zod"
import { MembershipLevelEnum } from "@/constants/membershipLevels"
import { BlocksEnums } from "@/types/enums/blocks"
const link = z.object({
href: z.string(),
title: z.string(),
})
export const sasTierComparisonSchema = z.object({
typename: z
.literal(BlocksEnums.block.SasTierComparison)
.optional()
.default(BlocksEnums.block.SasTierComparison),
sas_tier_comparison: z
.object({
comparisonConnection: z.object({
edges: z.array(
z.object({
node: z.object({
title: z.string(),
preamble: z.string().optional(),
scandic_column_title: z.string(),
sas_column_title: z.string(),
tier_matches: z.array(
z.object({
scandic_friends_tier_name: z.string(),
sas_eb_tier_name: z.string(),
title: z.string(),
content: z.object({
json: z.any(), // json
}),
link: link.optional(),
})
),
cta: link.optional(),
}),
})
),
}),
})
.transform((data) => {
return {
sasTierComparison: data.comparisonConnection.edges.at(0)?.node ?? null,
}
}),
})