Skip to content

Commit c9c26d0

Browse files
committed
fix(core): skip resize handler if node not visible (#1936)
* fix(core): skip resize handler if node not visible Signed-off-by: braks <[email protected]> * chore(changeset): add Signed-off-by: braks <[email protected]> --------- Signed-off-by: braks <[email protected]>
1 parent e9f0cdf commit c9c26d0

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

.changeset/stupid-bags-itch.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@vue-flow/core": patch
3+
---
4+
5+
Skip resize handler if node is not visible.

packages/core/src/composables/useResizeHandler.ts

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,12 @@ export function useResizeHandler(viewportEl: Ref<HTMLDivElement | null>): void {
1515
let resizeObserver: ResizeObserver
1616

1717
onMounted(() => {
18-
const rendererNode = viewportEl.value
19-
2018
const updateDimensions = () => {
21-
if (!rendererNode) {
19+
if (!viewportEl.value || !(viewportEl.value.checkVisibility() ?? true)) {
2220
return
2321
}
2422

25-
const size = getDimensions(rendererNode)
23+
const size = getDimensions(viewportEl.value)
2624

2725
if (size.width === 0 || size.height === 0) {
2826
emits.error(new VueFlowError(ErrorCode.MISSING_VIEWPORT_DIMENSIONS))
@@ -34,16 +32,16 @@ export function useResizeHandler(viewportEl: Ref<HTMLDivElement | null>): void {
3432
updateDimensions()
3533
window.addEventListener('resize', updateDimensions)
3634

37-
if (rendererNode) {
35+
if (viewportEl.value) {
3836
resizeObserver = new ResizeObserver(() => updateDimensions())
39-
resizeObserver.observe(rendererNode)
37+
resizeObserver.observe(viewportEl.value)
4038
}
4139

4240
onBeforeUnmount(() => {
4341
window.removeEventListener('resize', updateDimensions)
4442

45-
if (resizeObserver && rendererNode) {
46-
resizeObserver.unobserve(rendererNode!)
43+
if (resizeObserver && viewportEl.value) {
44+
resizeObserver.unobserve(viewportEl.value!)
4745
}
4846
})
4947
})

0 commit comments

Comments
 (0)