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