Merged in fix/LOY-369-Redeem-tier-rewards (pull request #2822)

fix(LOY-369): Able to redeem tier rewards

* fix(LOY-369): able to redeem on site tier rewards

* fix(LOY-369): single mutation call

* fix(LOY-369): apply coupon check for all tier rewards


Approved-by: Linus Flood
Approved-by: Matilda Landström
This commit is contained in:
Chuma Mcphoy (We Ahead)
2025-09-22 08:27:30 +00:00
parent db546d7167
commit 9b8ed972ec
5 changed files with 91 additions and 68 deletions

View File

@@ -5,7 +5,7 @@ import { createContext, useCallback, useContext, useEffect } from "react"
import { logger } from "@scandic-hotels/common/logger"
import { trpc } from "@scandic-hotels/trpc/client"
import { getFirstRedeemableCoupon } from "@/utils/rewards"
import { getFirstRedeemableCoupon, isTierType } from "@/utils/rewards"
import type { Reward } from "@scandic-hotels/trpc/types/rewards"
@@ -34,9 +34,21 @@ export default function useRedeemFlow() {
const onRedeem = useCallback(
(reward: Reward) => {
const coupon = getFirstRedeemableCoupon(reward)
let couponCode: string | undefined
if (isTierType(reward.rewardType)) {
couponCode = undefined
} else {
const coupon = getFirstRedeemableCoupon(reward)
if (!coupon) {
logger.error("No redeemable coupon found for reward", reward)
return
}
couponCode = coupon.couponCode
}
update.mutate(
{ rewardId: reward.id, couponCode: coupon.couponCode },
{ rewardId: reward.id, couponCode },
{
onSuccess() {
setRedeemStep("redeemed")