import React, { useState } from 'react';
import PropTypes from 'prop-types';
import classnames from 'classnames';
import Icon from '../Icon';
const SegmentationItem = ({
id,
index,
label,
displayText,
isActive,
isVisible,
onClick,
onEdit,
onDelete,
toggleVisibility,
}) => {
const [isHovering, setIsHovering] = useState(false);
const onEditHandler = event => {
event.stopPropagation();
onEdit({ id, isActive, event });
};
const onClickHandler = event => onClick({ id, isActive, event });
const onMouseEnter = () => setIsHovering(true);
const onMouseLeave = () => setIsHovering(false);
return (
{isHovering ? (
{
e.stopPropagation();
onDelete(id);
}}
/>
) : (
{index}
)}
onEditHandler(e)}
/>
{
// stopPropagation needed to avoid disable the current active item
e.stopPropagation();
toggleVisibility(e, id);
}}
/>
{displayText &&
displayText.map(line => (
{line}
))}
);
};
SegmentationItem.propTypes = {
id: PropTypes.oneOfType([
PropTypes.number.isRequired,
PropTypes.string.isRequired,
]),
index: PropTypes.number.isRequired,
label: PropTypes.string,
displayText: PropTypes.arrayOf(PropTypes.string),
isActive: PropTypes.bool,
isVisible: PropTypes.bool,
onClick: PropTypes.func,
onEdit: PropTypes.func,
onDelete: PropTypes.func,
toggleVisibility: PropTypes.func,
};
SegmentationItem.defaultProps = {
isActive: false,
displayText: [],
};
export default SegmentationItem;