fix: set redeem description nullable in order to handle the transition from string to RTE

This commit is contained in:
Christian Andolf
2025-04-11 09:16:13 +02:00
parent 543ea3e5a3
commit 80a738af7b
2 changed files with 42 additions and 32 deletions

View File

@@ -46,13 +46,13 @@ export default function Tier({
{reward.label} {reward.label}
</Title> </Title>
{reward.redeemLocation !== "Non-redeemable" ? ( {reward.redeemLocation !== "Non-redeemable" && (
<> <>
{redeemStep === "initial" && ( {redeemStep === "initial" && (
<Body textAlign="center">{reward.description}</Body> <Body textAlign="center">{reward.description}</Body>
)} )}
{redeemStep === "confirmation" && ( {redeemStep === "confirmation" && reward.redeem_description && (
<JsonToHtml <JsonToHtml
embeds={ embeds={
reward.redeem_description.embedded_itemsConnection.edges reward.redeem_description.embedded_itemsConnection.edges
@@ -67,12 +67,14 @@ export default function Tier({
<MembershipNumberBadge membershipNumber={membershipNumber} /> <MembershipNumberBadge membershipNumber={membershipNumber} />
)} )}
</> </>
) : (
<JsonToHtml
embeds={reward.redeem_description.embedded_itemsConnection.edges}
nodes={reward.redeem_description.json.children}
/>
)} )}
{reward.redeemLocation === "Non-redeemable" &&
reward.redeem_description && (
<JsonToHtml
embeds={reward.redeem_description.embedded_itemsConnection.edges}
nodes={reward.redeem_description.json.children}
/>
)}
</div> </div>
{reward.redeemLocation !== "Non-redeemable" ? ( {reward.redeemLocation !== "Non-redeemable" ? (

View File

@@ -36,22 +36,26 @@ const validateCmsRewardsSchema = z
reward_id: z.string(), reward_id: z.string(),
grouped_label: z.string().optional(), grouped_label: z.string().optional(),
description: z.string().optional(), description: z.string().optional(),
redeem_description: z.object({ redeem_description: z
json: z.any(), // JSON .object({
embedded_itemsConnection: z.object({ json: z.any(), // JSON
edges: z.array( embedded_itemsConnection: z.object({
z.object({ edges: z.array(
node: linkUnionSchema.transform((data) => { z.object({
const link = transformPageLink(data) node: linkUnionSchema.transform((data) => {
if (link) { const link = transformPageLink(data)
return link if (link) {
} return link
return data }
}), return data
}) }),
), })
}), ),
}), }),
})
// This is primarily added in order to handle a transition
// switching from string to RTE
.nullable(),
grouped_description: z.string().optional(), grouped_description: z.string().optional(),
value: z.string().optional(), value: z.string().optional(),
}) })
@@ -66,15 +70,19 @@ const rewardRefsSchema = z.object({
all_reward: z.object({ all_reward: z.object({
items: z.array( items: z.array(
z.object({ z.object({
redeem_description: z.object({ redeem_description: z
embedded_itemsConnection: z.object({ .object({
edges: z.array( embedded_itemsConnection: z.object({
z.object({ edges: z.array(
node: linkRefsUnionSchema, z.object({
}) node: linkRefsUnionSchema,
), })
}), ),
}), }),
})
// This is primarily added in order to handle a transition
// switching from string to RTE
.nullable(),
system: systemSchema, system: systemSchema,
}) })
), ),