Files
web/apps/scandic-web/components/Blocks/DynamicContent/Rewards/RewardIcon/data.ts
Anton Gunnarsson 002d093af4 Merged in feat/sw-2863-move-contentstack-router-to-trpc-package (pull request #2389)
feat(SW-2863): Move contentstack router to trpc package

* Add exports to packages and lint rule to prevent relative imports

* Add env to trpc package

* Add eslint to trpc package

* Apply lint rules

* Use direct imports from trpc package

* Add lint-staged config to trpc

* Move lang enum to common

* Restructure trpc package folder structure

* WIP first step

* update internal imports in trpc

* Fix most errors in scandic-web

Just 100 left...

* Move Props type out of trpc

* Fix CategorizedFilters types

* Move more schemas in hotel router

* Fix deps

* fix getNonContentstackUrls

* Fix import error

* Fix entry error handling

* Fix generateMetadata metrics

* Fix alertType enum

* Fix duplicated types

* lint:fix

* Merge branch 'master' into feat/sw-2863-move-contentstack-router-to-trpc-package

* Fix broken imports

* Merge branch 'master' into feat/sw-2863-move-contentstack-router-to-trpc-package


Approved-by: Linus Flood
2025-06-26 07:53:01 +00:00

73 lines
2.1 KiB
TypeScript

// import { REWARD_IDS } from "@scandic-hotels/trpc/types/rewards"
import { REWARD_IDS, type RewardId } from "@scandic-hotels/trpc/types/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<IconProps> | null {
if (!isValidRewardId(rewardId)) {
// TODO: Update once UX has decided on fallback icon.
return IllustrationByIconName(IconName.GiftOpen)
}
const iconName = getIconForRewardId(rewardId)
return IllustrationByIconName(iconName)
}