Merged in fix/nullable-redeem-description (pull request #1777)

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

Approved-by: Linus Flood
This commit is contained in:
Christian Andolf
2025-04-14 07:06:26 +00:00
2 changed files with 42 additions and 32 deletions

View File

@@ -46,13 +46,13 @@ export default function Tier({
{reward.label}
</Title>
{reward.redeemLocation !== "Non-redeemable" ? (
{reward.redeemLocation !== "Non-redeemable" && (
<>
{redeemStep === "initial" && (
<Body textAlign="center">{reward.description}</Body>
)}
{redeemStep === "confirmation" && (
{redeemStep === "confirmation" && reward.redeem_description && (
<JsonToHtml
embeds={
reward.redeem_description.embedded_itemsConnection.edges
@@ -67,12 +67,14 @@ export default function Tier({
<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>
{reward.redeemLocation !== "Non-redeemable" ? (

View File

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