blob: 1c2c1529f2d7f4864a77590689fbb11fdeac9f4b [file] [log] [blame]
import React from 'react';
import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
import OverlayTrigger from 'react-bootstrap/lib/OverlayTrigger.js';
import Tooltip from 'react-bootstrap/lib/Tooltip.js';
function tooltip(msg) {
return (
<Tooltip
className="select-action-table-error-tooltip"
id="error-tooltip">
{msg}
</Tooltip>
);
}
const IconWithOverlay = ({ overlayMsg }) => (
<OverlayTrigger placement="bottom" overlay={tooltip(overlayMsg)}>
<SVGIcon name="errorCircle" color="negative" />
</OverlayTrigger>
);
function renderErrorOrCheck({ hasError, overlayMsg }) {
if (hasError === undefined) {
return <SVGIcon name="angleRight" className="dummy-icon" />;
}
if (hasError) {
return overlayMsg ? (
<IconWithOverlay overlayMsg={overlayMsg} />
) : (
<SVGIcon color="negative" name="errorCircle" />
);
}
return <SVGIcon name="checkCircle" color="positive" />;
}
const SelectActionTableRow = ({
children,
actionIcon,
onAction,
showAction,
hasError,
hasErrorIndication,
overlayMsg
}) => (
<div className="select-action-table-row-wrapper">
<div
className={`select-action-table-row ${
hasError ? 'has-error' : ''
}`}>
{children}
</div>
{onAction && (
<SVGIcon
color="secondary"
name={actionIcon}
data-test-id={`select-action-table-${actionIcon}`}
onClick={onAction}
iconClassName={showAction ? '' : 'hideDelete'}
/>
)}
{hasErrorIndication && renderErrorOrCheck({ hasError, overlayMsg })}
</div>
);
export default SelectActionTableRow;