import { REWARD_IDS } from "@/constants/rewards" import { getIconByIconName } from "@/components/Icons/get-icon-by-icon-name" import { isValidRewardId } from "@/utils/rewards" import type { FC } from "react" import { IconName, type IconProps } from "@/types/components/icon" 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: { const unhandledRewardId: never = rewardId return IconName.GiftOpen } } } export function mapRewardToIcon(rewardId: string): FC | null { if (!isValidRewardId(rewardId)) { // TODO: Update once UX has decided on fallback icon. return getIconByIconName(IconName.GiftOpen) } const iconName = getIconForRewardId(rewardId) return getIconByIconName(iconName) }