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
50 lines
1.3 KiB
TypeScript
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,
|
|
}
|
|
}),
|
|
})
|