@@ -6,6 +6,7 @@ import { CssPropertiesBasedOnTheme, SkeletonElementIds } from "../../shared/css/
66import { extractNewFileNameFromDiffName , extractNumberFromString } from "../../shared/extract" ;
77import { MessageToExtension , MessageToWebview , MessageToWebviewHandler } from "../../shared/message" ;
88import { AppTheme } from "../../shared/types" ;
9+ import { Diff2HtmlCssClasses } from "../css/classes" ;
910import { Diff2HtmlCssClassElements } from "../css/elements" ;
1011import { UpdateWebviewPayload } from "./api" ;
1112import { getSha1Hash } from "./hash" ;
@@ -275,12 +276,21 @@ export class MessageToWebviewHandlerImpl implements MessageToWebviewHandler {
275276 if ( fileName && viewedState [ fileName ] ) {
276277 const diffHash = await this . getDiffHash ( toggle ) ;
277278 if ( diffHash === viewedState [ fileName ] ) {
278- toggle . click ( ) ;
279+ this . updateDiff2HtmlFileCollapsed ( toggle , true ) ;
279280 } else {
280281 toggle . classList . add ( CHANGED_SINCE_VIEWED ) ;
281282 }
282283 }
283284 }
285+
286+ private updateDiff2HtmlFileCollapsed ( toggleElement : HTMLInputElement , collapse : boolean) {
287+ // do the same thing that diff2html does to collapse or expand one file
288+ toggleElement . checked = collapse ;
289+ const fileContainer = this . getDiffFileContainer ( toggleElement ) ;
290+ const label = fileContainer ?. querySelector ( Diff2HtmlCssClassElements . Label__ViewedToggle ) ;
291+ label ?. classList . toggle ( Diff2HtmlCssClasses . Input__ViewedToggle__Selected , collapse ) ;
292+ const fileContent = fileContainer ?. querySelector ( Diff2HtmlCssClassElements . Div__DiffFileContent ) ;
293+ fileContent ?. classList . toggle ( Diff2HtmlCssClasses . Div__DiffFileContent__Collapsed , collapse ) ;
284294 }
285295
286296 private async getDiffHash ( diffElement : HTMLElement ) : Promise < string | null > {
0 commit comments