From dbe5c9732bd271fed6231c76b92236b8ba1cb486 Mon Sep 17 00:00:00 2001 From: Tim Down <158919+timdown@users.noreply.github.com> Date: Wed, 20 Sep 2023 16:02:41 +0100 Subject: [PATCH] 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 --- .../components/diff-view/diff-view.tsx | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/services/web/frontend/js/features/history/components/diff-view/diff-view.tsx b/services/web/frontend/js/features/history/components/diff-view/diff-view.tsx index 02e0045423..82695a8189 100644 --- a/services/web/frontend/js/features/history/components/diff-view/diff-view.tsx +++ b/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 (