From 622cc6d488c3f3cea2533a20c62fd9b8978f4eac Mon Sep 17 00:00:00 2001 From: Alex Kaminskii Date: Tue, 13 Sep 2022 17:52:42 +0200 Subject: [PATCH] fix(tracker): iframe root scroll on start --- tracker/tracker/src/main/modules/scroll.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/tracker/tracker/src/main/modules/scroll.ts b/tracker/tracker/src/main/modules/scroll.ts index 4fc791e2f..74003cd29 100644 --- a/tracker/tracker/src/main/modules/scroll.ts +++ b/tracker/tracker/src/main/modules/scroll.ts @@ -52,9 +52,16 @@ export default function (app: App): void { app.nodes.attachNodeCallback((node, isStart) => { // MBTODO: iterate over all the nodes on start instead of using isStart hack - if (isStart && isElementNode(node) && node.scrollLeft + node.scrollTop > 0) { - nodeScroll.set(node, [node.scrollLeft, node.scrollTop]) - } else if (isRootNode(node)) { + if (isStart) { + if (isElementNode(node) && node.scrollLeft + node.scrollTop > 0) { + nodeScroll.set(node, [node.scrollLeft, node.scrollTop]) + } else if (isDocument(node)) { + // DRY somehow? + nodeScroll.set(node, getDocumentScroll(node)) + } + } + + if (isRootNode(node)) { // scroll is not-composed event (https://javascript.info/shadow-dom-events) app.nodes.attachNodeListener(node, 'scroll', (e: Event): void => { setNodeScroll(e.target)