Quellcode durchsuchen

Merge pull request #3547 from overleaf/msm-fix-file-tree-selected-file-scroll

[ReactFileTree] Fixed selected item scroll

GitOrigin-RevId: 36d71b40a86fb8444f9b8501ae9baf1a7a75f019
Timothée Alby vor 5 Jahren
Ursprung
Commit
bc8c12f53d

+ 10 - 4
services/web/frontend/js/features/file-tree/components/file-tree-item/file-tree-item-inner.js

@@ -21,10 +21,16 @@ function FileTreeItemInner({ id, name, isSelected, icons }) {
   const itemRef = createRef()
 
   useEffect(() => {
-    if (isSelected && itemRef.current) {
-      scrollIntoViewIfNeeded(itemRef.current, {
-        scrollMode: 'if-needed'
-      })
+    const item = itemRef.current
+    if (isSelected && item) {
+      // we found scrolling doesn't happen unless a explicit delay is introduced
+      setTimeout(() => {
+        if (item) {
+          scrollIntoViewIfNeeded(item, {
+            scrollMode: 'if-needed'
+          })
+        }
+      }, 10)
     }
   }, [isSelected, itemRef])