From ee6f04fd276ba557a2f141b0c416f21e2bd351fe Mon Sep 17 00:00:00 2001 From: Can Urgan Date: Fri, 30 May 2025 15:50:48 +0300 Subject: [PATCH] fix: Prevent ResizeObserver recursion in FrameWrapView --- packages/core/src/canvas/view/FrameWrapView.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/core/src/canvas/view/FrameWrapView.ts b/packages/core/src/canvas/view/FrameWrapView.ts index e825e0121..6e5f8be3c 100644 --- a/packages/core/src/canvas/view/FrameWrapView.ts +++ b/packages/core/src/canvas/view/FrameWrapView.ts @@ -170,9 +170,14 @@ export default class FrameWrapView extends ModuleView { if (contentDocument) { const observer = new ResizeObserver(() => { + const currentWrapperHeight = parseFloat(style.height); + const newScrollHeight = contentDocument.body.scrollHeight; const minHeight = parseFloat(model.get('minHeight')) || 0; - const heightResult = Math.max(contentDocument.body.scrollHeight, minHeight); - style.height = `${heightResult}px`; + const targetHeight = Math.max(newScrollHeight, minHeight); + + if (Math.abs(currentWrapperHeight - targetHeight) > 1) { + style.height = `${targetHeight}px`; + } }); observer.observe(contentDocument.body); this.sizeObserver = observer;