43 lines
1.5 KiB
TypeScript
43 lines
1.5 KiB
TypeScript
import { FC } from "react"
|
|
|
|
import { getIconByIconName } from "@/components/Icons/get-icon-by-icon-name"
|
|
|
|
import { IconName , IconProps } from "@/types/components/icon"
|
|
import { RewardId } from "@/types/enums/rewards"
|
|
|
|
const rewardToIconMap: Record<RewardId, IconName> = {
|
|
// Food & beverage.
|
|
[RewardId.TenPercentFood]: IconName.CroissantCoffeeEgg,
|
|
[RewardId.FifteenPercentFood]: IconName.CroissantCoffeeEgg,
|
|
[RewardId.TwoForOneBreakfast]: IconName.CutleryTwo,
|
|
[RewardId.FreeBreakfast]: IconName.CutleryOne,
|
|
[RewardId.FreeKidsDrink]: IconName.KidsMocktail,
|
|
|
|
// Monetary (or exchange for points) vouchers all use the same icon.
|
|
[RewardId.Bonus50SEK]: IconName.Voucher,
|
|
[RewardId.Bonus75SEK]: IconName.Voucher,
|
|
[RewardId.Bonus100SEK]: IconName.Voucher,
|
|
[RewardId.Bonus150SEK]: IconName.Voucher,
|
|
[RewardId.Bonus200SEK]: IconName.Voucher,
|
|
|
|
// Hotel perks.
|
|
[RewardId.EarlyCheckin]: IconName.HandKey,
|
|
[RewardId.LateCheckout]: IconName.HotelNight,
|
|
[RewardId.FreeUpgrade]: IconName.MagicWand,
|
|
[RewardId.RoomGuarantee48H]: IconName.Bed,
|
|
|
|
// Earnings.
|
|
[RewardId.EarnRate25Percent]: IconName.MoneyHand,
|
|
[RewardId.EarnRate50Percent]: IconName.MoneyHand,
|
|
[RewardId.StayBoostForKids]: IconName.Kids,
|
|
[RewardId.MemberRate]: IconName.Coin,
|
|
|
|
// Special
|
|
[RewardId.YearlyExclusiveGift]: IconName.GiftOpen,
|
|
}
|
|
|
|
export function mapRewardToIcon(rewardId: string): FC<IconProps> | null {
|
|
const iconName = rewardToIconMap[rewardId as RewardId]
|
|
return getIconByIconName(iconName) || null
|
|
}
|