| 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;  |