From b86347b4f4b0c33e5c6f717ba5f8d10820728519 Mon Sep 17 00:00:00 2001 From: Christian Andolf Date: Tue, 11 Mar 2025 16:09:15 +0100 Subject: [PATCH] refactor(LOY-175): rewrite reward types according to new api endpoints --- .../Rewards/CurrentRewards/Client.tsx | 22 ++- .../Rewards/Redeem/Flows/Campaign.tsx | 10 +- .../Rewards/Redeem/Flows/Tier.tsx | 8 +- .../DynamicContent/Rewards/Redeem/index.tsx | 13 +- .../Rewards/Redeem/useRedeemFlow.ts | 9 +- .../Rewards/ScriptedRewardText/index.tsx | 16 +-- .../components/MyPages/Surprises/Client.tsx | 4 +- .../routers/contentstack/reward/output.ts | 134 ++++++++---------- .../routers/contentstack/reward/query.ts | 120 +++++----------- .../routers/contentstack/reward/utils.ts | 28 ++-- .../components/myPages/myPage/accountPage.ts | 8 +- .../types/components/myPages/rewards.ts | 25 +++- .../types/components/overviewTable.ts | 6 +- apps/scandic-web/utils/loyaltyTable.ts | 3 +- apps/scandic-web/utils/rewards.ts | 36 +++-- 15 files changed, 196 insertions(+), 246 deletions(-) diff --git a/apps/scandic-web/components/Blocks/DynamicContent/Rewards/CurrentRewards/Client.tsx b/apps/scandic-web/components/Blocks/DynamicContent/Rewards/CurrentRewards/Client.tsx index 3f0ddc359..bdb2a640f 100644 --- a/apps/scandic-web/components/Blocks/DynamicContent/Rewards/CurrentRewards/Client.tsx +++ b/apps/scandic-web/components/Blocks/DynamicContent/Rewards/CurrentRewards/Client.tsx @@ -19,10 +19,10 @@ import Redeem from "../Redeem" import styles from "./current.module.css" import type { CurrentRewardsClientProps } from "@/types/components/myPages/myPage/accountPage" -import type { - Reward, - RewardWithRedeem, -} from "@/server/routers/contentstack/reward/output" +import { + type Reward, + type RewardWithRedeem, +} from "@/types/components/myPages/rewards" export default function ClientCurrentRewards({ rewards: initialData, @@ -70,21 +70,15 @@ export default function ClientCurrentRewards({
{paginatedRewards.map((reward, idx) => { - const earliestExpirationDate = - "coupons" in reward - ? getEarliestExpirationDate(reward.coupons) - : null + const earliestExpirationDate = getEarliestExpirationDate( + reward.data.coupon + ) return (
- {showRedeem && ( - - )} + {showRedeem && } <div className={styles.modalContent}> @@ -35,7 +41,7 @@ export default function Campaign() { {intl.formatMessage({ id: "Promo code" })} </Caption> <Caption textAlign="center" color="uiTextHighContrast"> - {reward.operaRewardId} + {operaRewardId} </Caption> </div> </div> @@ -43,7 +49,7 @@ export default function Campaign() { <Button onClick={() => { try { - navigator.clipboard.writeText(reward.operaRewardId) + navigator.clipboard.writeText(operaRewardId) toast.success(intl.formatMessage({ id: "Copied to clipboard" })) } catch { toast.error(intl.formatMessage({ id: "Failed to copy" })) diff --git a/apps/scandic-web/components/Blocks/DynamicContent/Rewards/Redeem/Flows/Tier.tsx b/apps/scandic-web/components/Blocks/DynamicContent/Rewards/Redeem/Flows/Tier.tsx index 69831bd57..00ca98e05 100644 --- a/apps/scandic-web/components/Blocks/DynamicContent/Rewards/Redeem/Flows/Tier.tsx +++ b/apps/scandic-web/components/Blocks/DynamicContent/Rewards/Redeem/Flows/Tier.tsx @@ -35,7 +35,7 @@ export default function Tier({ <div className={styles.modalContent}> {redeemStep === "redeemed" && ( <div className={styles.badge}> - {isRestaurantOnSiteTierReward(reward) ? ( + {isRestaurantOnSiteTierReward(reward.data) ? ( <ActiveRedeemedBadge /> ) : ( <TimedRedeemedBadge /> @@ -47,7 +47,7 @@ export default function Tier({ {reward.label} - {reward.redeemLocation !== "Non-redeemable" ? ( + {reward.data.redeemLocation !== "Non-redeemable" ? ( <> {redeemStep === "initial" && ( {reward.description} @@ -63,7 +63,7 @@ export default function Tier({ )} {redeemStep === "redeemed" && - isRestaurantOnSiteTierReward(reward) && + isRestaurantOnSiteTierReward(reward.data) && membershipNumber && ( )} @@ -76,7 +76,7 @@ export default function Tier({ )}
- {reward.redeemLocation !== "Non-redeemable" ? ( + {reward.data.redeemLocation !== "Non-redeemable" ? ( <> {redeemStep === "initial" && (