@atlaskit/renderer
Version:
Renderer component
35 lines • 1.58 kB
JavaScript
import React, { useContext } from 'react';
import { Mounter } from './mounter';
import { RendererContext as ActionsContext } from '../../RendererActionsContext';
import { useAnnotationRangeDispatch, useAnnotationRangeState } from '../contexts/AnnotationRangeContext';
import { useAnnotationHoverContext } from '../contexts/AnnotationHoverContext';
export var RangeValidator = function RangeValidator(props) {
var component = props.component,
rendererRef = props.rendererRef,
createAnalyticsEvent = props.createAnalyticsEvent;
var actions = useContext(ActionsContext);
var _useAnnotationRangeDi = useAnnotationRangeDispatch(),
clearHoverRange = _useAnnotationRangeDi.clearHoverRange;
var _useAnnotationRangeSt = useAnnotationRangeState(),
range = _useAnnotationRangeSt.range,
type = _useAnnotationRangeSt.type;
var _useAnnotationHoverCo = useAnnotationHoverContext(),
isWithinRange = _useAnnotationHoverCo.isWithinRange;
if (!range || type !== 'hover') {
return null;
}
var documentPosition = actions.getPositionFromRange(range);
return /*#__PURE__*/React.createElement(Mounter, {
isWithinRange: isWithinRange,
range: range,
wrapperDOM: rendererRef,
component: component,
onClose: clearHoverRange,
documentPosition: documentPosition,
isAnnotationAllowed: true,
applyAnnotation: actions.applyAnnotation.bind(actions),
generateIndexMatch: actions.generateAnnotationIndexMatch.bind(actions),
createAnalyticsEvent: createAnalyticsEvent
});
};
RangeValidator.displayName = 'HoverRangeValidator';