({
// props
forwardRef,
id,
className,
classNameArrow,
variant = 'dark',
portalRoot,
anchorSelect,
place = 'top',
offset = 10,
openOnClick = false,
positionStrategy = 'absolute',
middlewares,
wrapper: WrapperElement,
delayShow = 0,
delayHide = 0,
autoClose,
float = false,
hidden = false,
noArrow = false,
clickable = false,
openEvents,
closeEvents,
globalCloseEvents,
imperativeModeOnly,
style: externalStyles,
position,
afterShow,
afterHide,
disableTooltip,
// props handled by controller
content,
contentWrapperRef,
isOpen,
defaultIsOpen = false,
setIsOpen,
previousActiveAnchor,
activeAnchor,
setActiveAnchor,
border,
opacity,
arrowColor,
arrowSize = 8,
role = 'tooltip',
}: ITooltip)
| 26 | let globalTransitionShowDelay: number | null = null |
| 27 | |
| 28 | const Tooltip = ({ |
| 29 | // props |
| 30 | forwardRef, |
| 31 | id, |
| 32 | className, |
| 33 | classNameArrow, |
| 34 | variant = 'dark', |
| 35 | portalRoot, |
| 36 | anchorSelect, |
| 37 | place = 'top', |
| 38 | offset = 10, |
| 39 | openOnClick = false, |
| 40 | positionStrategy = 'absolute', |
| 41 | middlewares, |
| 42 | wrapper: WrapperElement, |
| 43 | delayShow = 0, |
| 44 | delayHide = 0, |
| 45 | autoClose, |
| 46 | float = false, |
| 47 | hidden = false, |
| 48 | noArrow = false, |
| 49 | clickable = false, |
| 50 | openEvents, |
| 51 | closeEvents, |
| 52 | globalCloseEvents, |
| 53 | imperativeModeOnly, |
| 54 | style: externalStyles, |
| 55 | position, |
| 56 | afterShow, |
| 57 | afterHide, |
| 58 | disableTooltip, |
| 59 | // props handled by controller |
| 60 | content, |
| 61 | contentWrapperRef, |
| 62 | isOpen, |
| 63 | defaultIsOpen = false, |
| 64 | setIsOpen, |
| 65 | previousActiveAnchor, |
| 66 | activeAnchor, |
| 67 | setActiveAnchor, |
| 68 | border, |
| 69 | opacity, |
| 70 | arrowColor, |
| 71 | arrowSize = 8, |
| 72 | role = 'tooltip', |
| 73 | }: ITooltip) => { |
| 74 | const tooltipRef = useRef<HTMLElement>(null) |
| 75 | const tooltipArrowRef = useRef<HTMLElement>(null) |
| 76 | const tooltipShowDelayTimerRef = useRef<NodeJS.Timeout | null>(null) |
| 77 | const tooltipHideDelayTimerRef = useRef<NodeJS.Timeout | null>(null) |
| 78 | const tooltipAutoCloseTimerRef = useRef<NodeJS.Timeout | null>(null) |
| 79 | const missedTransitionTimerRef = useRef<NodeJS.Timeout | null>(null) |
| 80 | const [computedPosition, setComputedPosition] = useState<IComputedPosition>({ |
| 81 | tooltipStyles: {}, |
| 82 | tooltipArrowStyles: {}, |
| 83 | place, |
| 84 | }) |
| 85 | const [show, setShow] = useState(false) |
nothing calls this directly
no test coverage detected
searching dependent graphs…