blob: 260d39d31cabf9f7f156fdb1d438c36407ea8130 [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;