Просмотр исходного кода

Merge pull request #14829 from overleaf/td-history-scroll-editor-tab

History view: prevent scroll to top of document diff viewer when editing in another tab

GitOrigin-RevId: d94da63fdb8e76203a1a2cc5729188a9d28e0be5
Tim Down 2 лет назад
Родитель
Сommit
dbe5c9732b

+ 15 - 11
services/web/frontend/js/features/history/components/diff-view/diff-view.tsx

@@ -1,4 +1,4 @@
-import { useEffect } from 'react'
+import { useEffect, useMemo } from 'react'
 import Toolbar from './toolbar/toolbar'
 import Main from './main'
 import { Diff, DocDiffResponse } from '../../services/types/doc'
@@ -53,18 +53,22 @@ function DiffView() {
     handleError,
   ])
 
-  let diff: Diff | null
+  const diff = useMemo(() => {
+    let diff: Diff | null
 
-  if (!data?.diff) {
-    diff = null
-  } else if ('binary' in data.diff) {
-    diff = { binary: true }
-  } else {
-    diff = {
-      binary: false,
-      docDiff: highlightsFromDiffResponse(data.diff, t),
+    if (!data?.diff) {
+      diff = null
+    } else if ('binary' in data.diff) {
+      diff = { binary: true }
+    } else {
+      diff = {
+        binary: false,
+        docDiff: highlightsFromDiffResponse(data.diff, t),
+      }
     }
-  }
+
+    return diff
+  }, [data, t])
 
   return (
     <div className="doc-panel">