Files
web/apps/scandic-web/components/Blocks/DynamicContent/Rewards/ScriptedRewardText/index.tsx
Chuma Mcphoy (We Ahead) daeb38832b Merged in feat/LOY-365-promo-campaign-eligible-levels (pull request #2864)
feat(LOY-365): Add support for eligible levels for promo campaign pages

* feat(LOY-365): Add support for eligible levels for promo campaign pages

* fix(LOY-365): update to most recent copy

* fix(LOY-365): cleanup css

* fix(LOY-365): Move ineligible message to the bottom

* fix(LOY-365): remove uneeded type


Approved-by: Erik Tiekstra
Approved-by: Matilda Landström
2025-09-29 06:58:15 +00:00

51 lines
1.2 KiB
TypeScript

import { useIntl } from "react-intl"
import { isMembershipLevel } from "@scandic-hotels/common/utils/membershipLevels"
import { TIER_TO_FRIEND_MAP } from "@/constants/membershipLevels"
import BiroScript from "@/components/TempDesignSystem/Text/BiroScript"
import type { ScriptedRewardTextProps } from "@/types/components/myPages/myPage/accountPage"
export default function ScriptedRewardText({
reward,
}: ScriptedRewardTextProps) {
const intl = useIntl()
function getLabel() {
switch (reward.rewardType) {
case "Tier": {
const { rewardTierLevel } = reward
return rewardTierLevel && isMembershipLevel(rewardTierLevel)
? TIER_TO_FRIEND_MAP[rewardTierLevel]
: null
}
case "Campaign":
return intl.formatMessage({
defaultMessage: "Campaign",
})
case "Surprise":
return intl.formatMessage({
defaultMessage: "Surprise!",
})
case "Member-voucher":
return intl.formatMessage({
defaultMessage: "Voucher",
})
default:
return null
}
}
const label = getLabel()
if (!label) return null
return (
<BiroScript type="two" color="red" tilted="small">
{label}
</BiroScript>
)
}