1- import React , { forwardRef , Fragment , useLayoutEffect , useState , useRef } from "react"
1+ import React , { forwardRef , Fragment , useLayoutEffect } from "react"
22import Drop from "src/components/drops/drop"
33import useForwardRef from "src/hooks/use-forward-ref"
44import useToggle from "src/hooks/use-toggle"
@@ -21,28 +21,19 @@ const Tooltip = forwardRef(
2121 disabled,
2222 zIndex = 80 ,
2323 children,
24- onClickOutside,
2524 allowHoverOnTooltip,
2625 ...rest
2726 } ,
2827 parentRef
2928 ) => {
3029 const id = useDescribedId ( rest [ "aria-describedby" ] )
3130 const [ isOpen , , open , close ] = useToggle ( false )
32- const [ hasPopUpHovered , setHasPopUpHovered ] = useState ( false )
33- const closeWithDelayTimeout = useRef ( )
3431
3532 const [ ref , setRef ] = useForwardRef ( parentRef )
3633
37- const handleCloseWithDelay = ( ) => {
38- closeWithDelayTimeout . current = setTimeout ( ( ) => {
39- close ( )
40- } , 200 )
41- }
42-
4334 const targetElement = useClonedChildren ( children , setRef , {
4435 onMouseEnter : open ,
45- onMouseLeave : allowHoverOnTooltip ? handleCloseWithDelay : close ,
36+ onMouseLeave : ! allowHoverOnTooltip ? close : undefined ,
4637 onFocus : open ,
4738 onBlur : close ,
4839 ...( isOpen && { "aria-describedby" : id } ) ,
@@ -53,12 +44,6 @@ const Tooltip = forwardRef(
5344 if ( ref . current && initialOpen ) open ( )
5445 } , [ ] )
5546
56- useLayoutEffect ( ( ) => {
57- if ( hasPopUpHovered && closeWithDelayTimeout . current ) {
58- clearTimeout ( closeWithDelayTimeout . current )
59- }
60- } , [ hasPopUpHovered ] )
61-
6247 if ( ! content ) {
6348 return children
6449 }
@@ -72,11 +57,7 @@ const Tooltip = forwardRef(
7257 hideShadow
7358 id = { id }
7459 onClickOutside = { close }
75- onMouseLeave = { ( ) => {
76- setHasPopUpHovered ( false )
77- close ( )
78- } }
79- onMouseEnter = { ( ) => setHasPopUpHovered ( true ) }
60+ onMouseLeave = { close }
8061 target = { ref . current }
8162 { ...dropProps }
8263 animation = { animation }
0 commit comments