Skip to content

Commit 1ebfb77

Browse files
committed
Fix on tooltip hover.
1 parent 598b7c6 commit 1ebfb77

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

src/components/drops/tooltip/index.js

+15-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { forwardRef, Fragment, useLayoutEffect } from "react"
1+
import React, { useRef, forwardRef, Fragment, useLayoutEffect } from "react"
22
import Drop from "src/components/drops/drop"
33
import useForwardRef from "src/hooks/use-forward-ref"
44
import useToggle from "src/hooks/use-toggle"
@@ -33,13 +33,21 @@ const Tooltip = forwardRef(
3333

3434
const targetElement = useClonedChildren(children, setRef, {
3535
onMouseEnter: open,
36-
onMouseLeave: !allowHoverOnTooltip ? close : undefined,
36+
onMouseLeave: !allowHoverOnTooltip
37+
? close
38+
: () =>
39+
setTimeout(() => {
40+
if (onTooltipRef.current) return
41+
close()
42+
}, 300),
3743
onFocus: open,
3844
onBlur: close,
3945
...(isOpen && { "aria-describedby": id }),
4046
...rest,
4147
})
4248

49+
const onTooltipRef = useRef(false)
50+
4351
useLayoutEffect(() => {
4452
if (ref.current && initialOpen) open()
4553
}, [])
@@ -57,7 +65,11 @@ const Tooltip = forwardRef(
5765
hideShadow
5866
id={id}
5967
onClickOutside={close}
60-
onMouseLeave={close}
68+
onMouseEnter={() => (onTooltipRef.current = true)}
69+
onMouseLeave={() => {
70+
onTooltipRef.current = false
71+
close()
72+
}}
6173
target={ref.current}
6274
{...dropProps}
6375
animation={animation}

0 commit comments

Comments
 (0)