import React, {useCallback, useState} from 'react' import useClassNames from '../../shared/useClassNames' import Icon from '../icon/index' import './index.less' type TagProps = { name: string closable?: boolean color?: string background?: string prefixCls?: string className?: string afterClose?(name: string): void onClick?(name: string): void } const Tag: React.FC = ({ name, closable, color, background, prefixCls, className, onClick, afterClose, }: TagProps) => { const [visible, setVisible] = useState(true) const newClassName = useClassNames('tag', prefixCls, {}, className) const closeDom = () => onClose()} /> const tagBgStyle = color ? {borderColor: color, color, background} : {} const onClose = useCallback(() => { setVisible(false) afterClose?.(name) }, [visible]) if (!visible) return
return (
onClick?.(name)} style={tagBgStyle}> {name} {closable && closeDom()}
) } export default Tag