Skip to content

Commit 38ca7f2

Browse files
gabrieljablonskidanielbarion
authored andcommitted
only show tooltip after calculating position
1 parent c7aee48 commit 38ca7f2

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/components/Tooltip/Tooltip.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ const Tooltip = ({
3636
const [inlineStyles, setInlineStyles] = useState({})
3737
const [inlineArrowStyles, setInlineArrowStyles] = useState({})
3838
const [show, setShow] = useState<boolean>(false)
39+
const [calculatingPosition, setCalculatingPosition] = useState(false)
3940
const { anchorRefs, setActiveAnchor: setProviderActiveAnchor } = useTooltip()(id)
4041
const [activeAnchor, setActiveAnchor] = useState<React.RefObject<HTMLElement>>({ current: null })
4142

@@ -90,7 +91,6 @@ const Tooltip = ({
9091
} else {
9192
handleShow(false)
9293
}
93-
setActiveAnchor({ current: null })
9494

9595
if (tooltipShowDelayTimerRef.current) {
9696
clearTimeout(tooltipShowDelayTimerRef.current)
@@ -162,6 +162,7 @@ const Tooltip = ({
162162
// `anchorId` element takes precedence
163163
elementReference = document.querySelector(`[id='${anchorId}']`) as HTMLElement
164164
}
165+
setCalculatingPosition(true)
165166
let mounted = true
166167
computeTooltipPosition({
167168
place,
@@ -175,10 +176,10 @@ const Tooltip = ({
175176
// invalidate computed positions after unmount
176177
return
177178
}
179+
setCalculatingPosition(false)
178180
if (Object.keys(computedStylesData.tooltipStyles).length) {
179181
setInlineStyles(computedStylesData.tooltipStyles)
180182
}
181-
182183
if (Object.keys(computedStylesData.tooltipArrowStyles).length) {
183184
setInlineArrowStyles(computedStylesData.tooltipArrowStyles)
184185
}
@@ -204,7 +205,7 @@ const Tooltip = ({
204205
id={id}
205206
role="tooltip"
206207
className={classNames(styles['tooltip'], styles[variant], className, {
207-
[styles['show']]: isOpen || show,
208+
[styles['show']]: !calculatingPosition && (isOpen || show),
208209
[styles['fixed']]: positionStrategy === 'fixed',
209210
})}
210211
style={{ ...externalStyles, ...inlineStyles }}

0 commit comments

Comments
 (0)