Skip to content

Commit 592ee66

Browse files
committed
fix(ui): restore overflow observers on effect replay
1 parent b2d13f4 commit 592ee66

1 file changed

Lines changed: 7 additions & 6 deletions

File tree

packages/emcn/src/components/tooltip/tooltip.tsx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,6 @@ export function useIsOverflowing<T extends HTMLElement = HTMLElement>(
327327
} {
328328
const [isOverflowing, setIsOverflowing] = React.useState(false)
329329
const nodeRef = React.useRef<T | null>(null)
330-
const usesResizeObserverRef = React.useRef(false)
331330

332331
const measure = React.useCallback(() => {
333332
const element = nodeRef.current
@@ -341,17 +340,19 @@ export function useIsOverflowing<T extends HTMLElement = HTMLElement>(
341340
if (!node) return
342341

343342
measure()
344-
usesResizeObserverRef.current = observeOverflow(node, measure)
343+
observeOverflow(node, measure)
345344
},
346345
[measure]
347346
)
348347

349348
React.useEffect(() => {
350-
if (usesResizeObserverRef.current) return () => unobserveOverflow(nodeRef.current)
351-
window.addEventListener('resize', measure)
349+
const element = nodeRef.current
350+
if (!element) return undefined
351+
const usesResizeObserver = observeOverflow(element, measure)
352+
if (!usesResizeObserver) window.addEventListener('resize', measure)
352353
return () => {
353-
window.removeEventListener('resize', measure)
354-
unobserveOverflow(nodeRef.current)
354+
if (!usesResizeObserver) window.removeEventListener('resize', measure)
355+
unobserveOverflow(element)
355356
}
356357
}, [measure])
357358

0 commit comments

Comments
 (0)