# All files / components AnnotationHoverLayer.tsx

25% Statements 3/12
100% Branches 0/0
0% Functions 0/3
27.27% Lines 3/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    381x

    1x

    1x

     import React, {FunctionComponent} from 'react'
    import {AnnotationMark} from '../types'
    import {AnnotationLayerProps} from './AnnotationLayer'
    import {AnnotationTooltip} from './AnnotationTooltip'

    interface AnnotationHoverLayerProps extends AnnotationLayerProps {
      annotationPositions: AnnotationMark[]
      boundingReference: DOMRect
      hoverRowIndices: number[]
      width: number
    }

    export const AnnotationHoverLayer: FunctionComponent<AnnotationHoverLayerProps> = props => {
      const {
        annotationPositions,
        plotConfig,
        hoverRowIndices,
        boundingReference,
        width,
      } = props

      const hoveredAnnotations = (_, i: number) => hoverRowIndices.includes(i)

      return (
        <>
          {annotationPositions.filter(hoveredAnnotations).map(annotationData => (
            <AnnotationTooltip
              key={`annotation-tooltip-${annotationData.dimension}-${annotationData.startValue}-${annotationData.stopValue}`}
              config={plotConfig}
              data={annotationData}
              boundingReference={boundingReference}
              width={width}
            />
          ))}
        </>
      )
    }