import { memo, useCallback } from 'react'; import type { ISelectItem, ISelectCommonProps } from './Select'; import Icon from '../icon'; export interface ISelectTagProps< Key extends string | number = string | number, Item extends ISelectItem = ISelectItem > { item: Item; onRemove(item: Item): void; renderValue?: ISelectCommonProps['renderValue']; } function SelectTag< Key extends string | number = string | number, Item extends ISelectItem = ISelectItem >({ item, onRemove, renderValue }: ISelectTagProps) { const onClick = useCallback( (e: React.MouseEvent) => { e.stopPropagation(); onRemove(item); }, [onRemove, item] ); return (
{renderValue ? ( renderValue(item) ) : ( {item.text} )}
); } export default memo(SelectTag);