diff --git a/src/ui/js/diff2html-ui-base.ts b/src/ui/js/diff2html-ui-base.ts index 37853b9..b3f7730 100644 --- a/src/ui/js/diff2html-ui-base.ts +++ b/src/ui/js/diff2html-ui-base.ts @@ -113,24 +113,23 @@ export class Diff2HtmlUI { fileContentToggle(): void { this.targetElement.querySelectorAll('.d2h-file-collapse').forEach(fileContentToggleBtn => { - const toggle: (e: Event) => void = e => { - if (fileContentToggleBtn === e.target) return; - - const fileContentLineByLine: HTMLElement | null | undefined = fileContentToggleBtn + const toggleFileContents: (selector: string) => void = selector => { + const fileContents: HTMLElement | null | undefined = fileContentToggleBtn .closest('.d2h-file-wrapper') - ?.querySelector('.d2h-file-diff'); - const fileContentSideBySide: HTMLElement | null | undefined = fileContentToggleBtn - .closest('.d2h-file-wrapper') - ?.querySelector('.d2h-files-diff'); + ?.querySelector(selector); - if (fileContentLineByLine !== null && fileContentLineByLine !== undefined) - fileContentLineByLine.style.display = fileContentLineByLine.style.display === 'none' ? '' : 'none'; - - if (fileContentSideBySide !== null && fileContentSideBySide !== undefined) - fileContentSideBySide.style.display = fileContentSideBySide.style.display === 'none' ? '' : 'none'; + if (fileContents !== null && fileContents !== undefined) + fileContents.style.display = fileContents.style.display === 'none' ? '' : 'none'; }; - fileContentToggleBtn.addEventListener('click', e => toggle(e)); + const toggleHandler: (e: Event) => void = e => { + if (fileContentToggleBtn === e.target) return; + + toggleFileContents('.d2h-file-diff'); + toggleFileContents('.d2h-files-diff'); + }; + + fileContentToggleBtn.addEventListener('click', e => toggleHandler(e)); }); }