import { ArchiveIcon, CameraIcon, GearIcon, HomeIcon, PaperPlaneIcon, TriangleDownIcon, UpdateIcon, } from '@radix-ui/react-icons'; import classnames from 'classnames'; import { NamedExoticComponent } from 'react'; type IconName = 'archive' | 'home' | 'camera' | 'gear' | 'triangle-down' | 'paper-plane' | 'update'; const icons: Record> = { 'paper-plane': PaperPlaneIcon, 'triangle-down': TriangleDownIcon, archive: ArchiveIcon, camera: CameraIcon, gear: GearIcon, home: HomeIcon, update: UpdateIcon, }; export interface IconProps { icon: IconName; className?: string; size?: 'md'; spin?: boolean; } export function Icon({ icon, spin, size = 'md', className }: IconProps) { const Component = icons[icon]; return ( ); }