From 94d1899c0866f556e452f0d41dfaafb811eddde7 Mon Sep 17 00:00:00 2001 From: gabrieljablonski Date: Sat, 10 Feb 2024 11:39:26 -0300 Subject: [PATCH 1/2] fix: ignore `delayShow` if tooltip is already rendered --- src/components/Tooltip/Tooltip.tsx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/components/Tooltip/Tooltip.tsx b/src/components/Tooltip/Tooltip.tsx index 02d6354c..70f4f4ee 100644 --- a/src/components/Tooltip/Tooltip.tsx +++ b/src/components/Tooltip/Tooltip.tsx @@ -244,6 +244,12 @@ const Tooltip = ({ clearTimeout(tooltipShowDelayTimerRef.current) } + if (rendered) { + // if the tooltip is already rendered, ignore delay + handleShow(true) + return + } + tooltipShowDelayTimerRef.current = setTimeout(() => { handleShow(true) }, delay) From b067d666235777136e69bc7b333b0adc1322182e Mon Sep 17 00:00:00 2001 From: gabrieljablonski Date: Sat, 10 Feb 2024 11:51:43 -0300 Subject: [PATCH 2/2] fix: watch for `delayShow`/`delayHide` changes --- src/components/Tooltip/Tooltip.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/components/Tooltip/Tooltip.tsx b/src/components/Tooltip/Tooltip.tsx index 70f4f4ee..b625d4fa 100644 --- a/src/components/Tooltip/Tooltip.tsx +++ b/src/components/Tooltip/Tooltip.tsx @@ -635,6 +635,8 @@ const Tooltip = ({ closeEvents, globalCloseEvents, shouldOpenOnClick, + delayShow, + delayHide, ]) useEffect(() => { @@ -806,6 +808,13 @@ const Tooltip = ({ } }, [id, anchorSelect, imperativeOptions?.anchorSelect]) + useEffect(() => { + if (tooltipShowDelayTimerRef.current) { + clearTimeout(tooltipShowDelayTimerRef.current) + handleShowTooltipDelayed(delayShow) + } + }, [delayShow]) + const actualContent = imperativeOptions?.content ?? content const canShow = show && Object.keys(inlineStyles).length > 0