import React from 'react'; import Tooltip from 'rc-tooltip'; import { OncoKbCardDataType } from 'cbioportal-utils'; import { IndicatorQueryResp } from 'oncokb-ts-api-client'; import { annotationIconClassNames, calcHighestIndicatorLevel, } from '../../util/OncoKbUtils'; import annotationStyles from '../annotation.module.scss'; function hideArrow(tooltipEl: any) { const arrowEl = tooltipEl.querySelector('.rc-tooltip-arrow'); arrowEl.style.display = 'none'; } export const AnnotationIcon: React.FunctionComponent<{ type: OncoKbCardDataType; tooltipOverlay?: JSX.Element; indicator?: IndicatorQueryResp; availableDataTypes?: OncoKbCardDataType[]; }> = props => { if ( props.availableDataTypes !== undefined && !props.availableDataTypes.includes(props.type) ) { return null; } const highestLevel = calcHighestIndicatorLevel(props.type, props.indicator); return ( } /> ); }; export const AnnotationIconWithTooltip: React.FunctionComponent<{ tooltipOverlay?: JSX.Element; icon?: JSX.Element; }> = props => { if (props.icon) { return ( props.tooltipOverlay ? props.tooltipOverlay : null } placement="right" trigger={['hover', 'focus']} onPopupAlign={hideArrow} destroyTooltipOnHide={true} > {props.icon} ); } else { return null; } };