| import * as React from 'react'; | 
| import { Tooltip } from 'antd'; | 
| import classNames from 'classnames'; | 
| import * as AntdIcons from '@ant-design/icons'; | 
| import type { ThemeType } from './index'; | 
| import styles from './style.less'; | 
|   | 
| const allIcons: { | 
|   [key: string]: any; | 
| } = AntdIcons; | 
|   | 
| export interface CopyableIconProps { | 
|   name: string; | 
|   isNew: boolean; | 
|   theme: ThemeType; | 
|   justCopied: string | null; | 
|   onSelect: (type: string, text: string) => any; | 
| } | 
|   | 
| const CopyableIcon: React.FC<CopyableIconProps> = ({ | 
|   name, | 
|   justCopied, | 
|   onSelect, | 
|   theme, | 
| }) => { | 
|   const className = classNames({ | 
|     copied: justCopied === name, | 
|     [theme]: !!theme, | 
|   }); | 
|   return ( | 
|     <li className={className} | 
|       onClick={() => { | 
|         if (onSelect) { | 
|           onSelect(theme, name); | 
|         } | 
|       }}> | 
|       <Tooltip title={name}> | 
|         {React.createElement(allIcons[name], { className: styles.anticon })} | 
|       </Tooltip> | 
|       {/* <span className={styles.anticonClass}> | 
|           <Badge dot={isNew}>{name}</Badge> | 
|         </span> */} | 
|     </li> | 
|   ); | 
| }; | 
|   | 
| export default CopyableIcon; |