Files
web/packages/design-system/lib/components/Icons/IconByCSSelect.tsx
Chuma Mcphoy (We Ahead) 0737f4fb78 Merged in feat/LOY-354-L7-Progress-Card (pull request #2786)
Feat/LOY-354 L7 Progress Card

* feat(LOY-354): Add Trophy icon

* fix(LOY-354): include new tierPoints value

* feat(LOY-354): L7 Progress Level Card support

* refactor(LOY-354): Refactoring of component structure

* fix(LOY-354): Remove intl prop drilling

* fix(LOY-354): cleanup progress section code


Approved-by: Erik Tiekstra
2025-09-15 11:48:18 +00:00

91 lines
2.2 KiB
TypeScript

import BouquetIcon from './Nucleo/Benefits/bouquet'
import DiscountIcon from './Nucleo/Benefits/discount-2-2'
import { MaterialIcon, type MaterialIconProps } from './MaterialIcon'
import PalmTreeIcon from './Nucleo/Experiences/palm-tree-2'
import type { IconProps } from './icon'
interface IconByCSSelectProps extends IconProps {
identifier: string
}
export default function IconByCSSelect({
identifier,
color = 'CurrentColor',
size = 24,
...props
}: IconByCSSelectProps) {
switch (identifier) {
// These are custom icons
case 'discount-2-2':
return <DiscountIcon size={size} color={color} {...props} />
case 'bouquet':
return <BouquetIcon size={size} color={color} {...props} />
case 'palm_tree':
return <PalmTreeIcon size={size} color={color} {...props} />
// These are all Material Icons
case 'electric_car':
case 'golf_course':
case 'museum':
case 'spa':
case 'airplane_ticket':
case 'apartment':
case 'attractions':
case 'award_star':
case 'beach_access':
case 'box':
case 'deck':
case 'directions_run':
case 'directions_subway':
case 'downhill_skiing':
case 'emoji_transportation':
case 'exercise':
case 'family_restroom':
case 'festival':
case 'forest':
case 'garage':
case 'hiking':
case 'houseboat':
case 'kayaking':
case 'landscape':
case 'location_city':
case 'location_on':
case 'loyalty':
case 'music_note':
case 'night_shelter':
case 'nightlife':
case 'pedal_bike':
case 'pets':
case 'pool':
case 'recommend':
case 'redeem':
case 'restaurant':
case 'sauna':
case 'sell':
case 'shopping_bag':
case 'sports_handball':
case 'sports_tennis':
case 'theater_comedy':
case 'things_to_do':
case 'tram':
case 'transit_ticket':
case 'travel':
case 'trophy':
case 'travel_luggage_and_bags':
case 'favorite':
return (
<MaterialIcon
icon={identifier as MaterialIconProps['icon']}
size={size}
color={color}
{...props}
/>
)
default:
return (
<MaterialIcon size={size} icon="favorite" color={color} {...props} />
)
}
}