diff --git a/components/Blocks/DynamicContent/Rewards/Redeem/Flows/Tier.tsx b/components/Blocks/DynamicContent/Rewards/Redeem/Flows/Tier.tsx
index d6c23bcc8..ce57d63e6 100644
--- a/components/Blocks/DynamicContent/Rewards/Redeem/Flows/Tier.tsx
+++ b/components/Blocks/DynamicContent/Rewards/Redeem/Flows/Tier.tsx
@@ -45,52 +45,62 @@ export default function Tier({
{reward.label}
- {redeemStep === "initial" && (
-
{reward.description}
- )}
+ {reward.redeemLocation !== "Non-redeemable" ? (
+ <>
+ {redeemStep === "initial" && (
+ {reward.description}
+ )}
- {redeemStep === "confirmation" && (
+ {redeemStep === "confirmation" && (
+ {reward.redeem_description}
+ )}
+
+ {redeemStep === "redeemed" &&
+ isRestaurantOnSiteTierReward(reward) &&
+ membershipNumber && (
+
+ )}
+ >
+ ) : (
{reward.redeem_description}
)}
-
- {redeemStep === "redeemed" &&
- isRestaurantOnSiteTierReward(reward) &&
- membershipNumber && (
-
- )}
- {redeemStep === "initial" && (
-
- )}
+ {reward.redeemLocation !== "Non-redeemable" ? (
+ <>
+ {redeemStep === "initial" && (
+
+ )}
- {redeemStep === "confirmation" && (
-
- )}
+ {redeemStep === "confirmation" && (
+
+ )}
+ >
+ ) : null}
>
)
}
diff --git a/components/Blocks/DynamicContent/Rewards/Redeem/index.tsx b/components/Blocks/DynamicContent/Rewards/Redeem/index.tsx
index f1021fb38..e7d44c753 100644
--- a/components/Blocks/DynamicContent/Rewards/Redeem/index.tsx
+++ b/components/Blocks/DynamicContent/Rewards/Redeem/index.tsx
@@ -51,7 +51,9 @@ export default function Redeem({ reward, membershipNumber }: RedeemProps) {
onOpenChange={(isOpen) => setAnimation(isOpen ? "visible" : "hidden")}
>
val || []),
-})
+const CouponReward = BaseReward.merge(
+ z.object({
+ rewardType: z.enum(["Surprise", "Campaign", "Member-voucher"]),
+ operaRewardId: z.string().default(""),
+ coupon: z
+ .array(CouponData)
+ .optional()
+ .transform((val) => val || []),
+ })
+)
/**
* Schema for the new /profile/v1/Reward endpoint.