[SDC] Onboarding 1710 rebase.
[sdc.git] / openecomp-ui / src / nfvo-components / table / SelectActionTableRow.jsx
1 import React from 'react';
2 import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
3 import OverlayTrigger from 'react-bootstrap/lib/OverlayTrigger.js';
4 import Tooltip from 'react-bootstrap/lib/Tooltip.js';
5
6 function tooltip (msg)  {
7         return (
8                 <Tooltip className='select-action-table-error-tooltip' id='error-tooltip'>{msg}</Tooltip>
9         );
10 };
11
12 const IconWithOverlay = ({overlayMsg}) => (
13         <OverlayTrigger placement='bottom' overlay={tooltip(overlayMsg)}>
14                 <SVGIcon name='errorCircle'/>
15         </OverlayTrigger>
16 );
17
18 function renderErrorOrCheck({hasError, overlayMsg}) {
19         if (hasError === undefined) {
20                 return <SVGIcon name='angleRight' className='dummy-icon' />;
21         }
22
23         if (hasError) {
24                 return overlayMsg ? <IconWithOverlay overlayMsg={overlayMsg}/> :  <SVGIcon name='errorCircle'/>;
25         }
26
27         return <SVGIcon name='checkCircle'/>;
28 }
29
30 const SelectActionTableRow = ({children, onDelete, hasError, hasErrorIndication, overlayMsg}) => (
31         <div className='select-action-table-row-wrapper'>
32                 <div className={`select-action-table-row ${hasError ? 'has-error' : ''}`}>
33                         {children}
34                 </div>
35                 {onDelete && <SVGIcon name='trashO' data-test-id='select-action-table-delete' onClick={onDelete} />}
36                 {hasErrorIndication && renderErrorOrCheck({hasError, overlayMsg})}
37         </div>
38 );
39
40 export default SelectActionTableRow;