import { REWARD_IDS } from "@/constants/rewards" import { IconName } from "@/components/Icons/iconName" import { IllustrationByIconName } from "@/components/Icons/IllustrationByIconName" import { isValidRewardId } from "@/utils/rewards" import type { IconProps } from "@scandic-hotels/design-system/Icons" import type { FC } from "react" import type { RewardId } from "@/types/components/myPages/rewards" function getIconForRewardId(rewardId: RewardId): IconName { switch (rewardId) { // Food & beverage case REWARD_IDS.TenPercentFood: case REWARD_IDS.FifteenPercentFood: return IconName.CroissantCoffeeEgg case REWARD_IDS.TwoForOneBreakfast: return IconName.CutleryTwo case REWARD_IDS.FreeBreakfast: return IconName.CutleryOne case REWARD_IDS.FreeKidsDrink: return IconName.KidsMocktail // Monetary vouchers case REWARD_IDS.Bonus50SEK: case REWARD_IDS.Bonus75SEK: case REWARD_IDS.Bonus100SEK: case REWARD_IDS.Bonus150SEK: case REWARD_IDS.Bonus200SEK: return IconName.Voucher // Hotel perks case REWARD_IDS.EarlyCheckin: return IconName.HandKey case REWARD_IDS.LateCheckout: return IconName.HotelNight case REWARD_IDS.FreeUpgrade: return IconName.MagicWand case REWARD_IDS.RoomGuarantee48H: return IconName.Bed // Earnings case REWARD_IDS.EarnRate25Percent: case REWARD_IDS.EarnRate50Percent: return IconName.MoneyHand case REWARD_IDS.StayBoostForKids: return IconName.Kids case REWARD_IDS.MemberRate: return IconName.Coin // Special case REWARD_IDS.YearlyExclusiveGift: return IconName.GiftOpen default: { return IconName.GiftOpen } } } export function mapRewardToIcon(rewardId: string): FC | null { if (!isValidRewardId(rewardId)) { // TODO: Update once UX has decided on fallback icon. return IllustrationByIconName(IconName.GiftOpen) } const iconName = getIconForRewardId(rewardId) return IllustrationByIconName(iconName) }