From a3176e2b6b6e850a64f1218f4120dc4c1cf891b3 Mon Sep 17 00:00:00 2001 From: Jakob Ackermann Date: Tue, 12 Jan 2021 11:24:27 +0000 Subject: [PATCH] Merge pull request #3551 from overleaf/msm-filetree-increase-scroll-timeout Increased timeout to perform selected file scroll GitOrigin-RevId: 4bfa8e5a329dded4e7599d3df11625ed19c921e8 --- .../components/file-tree-item/file-tree-item-inner.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/services/web/frontend/js/features/file-tree/components/file-tree-item/file-tree-item-inner.js b/services/web/frontend/js/features/file-tree/components/file-tree-item/file-tree-item-inner.js index 00bccb7e2b..646da8dff6 100644 --- a/services/web/frontend/js/features/file-tree/components/file-tree-item/file-tree-item-inner.js +++ b/services/web/frontend/js/features/file-tree/components/file-tree-item/file-tree-item-inner.js @@ -23,14 +23,18 @@ function FileTreeItemInner({ id, name, isSelected, icons }) { useEffect(() => { const item = itemRef.current if (isSelected && item) { - // we found scrolling doesn't happen unless a explicit delay is introduced + // we're delaying scrolling due to a race condition with other elements, + // mainly the Outline, being resized inside the same panel, causing the + // FileTree to have its viewport shrinked after the selected item is + // scrolled into the view, hiding it again. + // See `left-pane-resize-all` in `file-tree-controller` for more information. setTimeout(() => { if (item) { scrollIntoViewIfNeeded(item, { scrollMode: 'if-needed' }) } - }, 10) + }, 100) } }, [isSelected, itemRef])