From 64d0f1e20e9a8f673d30d706fec5c03c9723a3fe Mon Sep 17 00:00:00 2001 From: Tim Zallmann Date: Tue, 7 Aug 2018 17:26:15 +0200 Subject: [PATCH] Fixed text removal memory saving + Fixed collapsed non text files --- .../diffs/components/diff_file.vue | 9 +++++++- app/assets/javascripts/diffs/store/actions.js | 4 +++- .../javascripts/diffs/store/mutations.js | 22 +++++++++---------- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/app/assets/javascripts/diffs/components/diff_file.vue b/app/assets/javascripts/diffs/components/diff_file.vue index eca9fc70490..e887a71c551 100644 --- a/app/assets/javascripts/diffs/components/diff_file.vue +++ b/app/assets/javascripts/diffs/components/diff_file.vue @@ -52,10 +52,16 @@ export default { handleToggle() { const { collapsed, highlightedDiffLines, parallelDiffLines } = this.file; - if (collapsed && !highlightedDiffLines && !parallelDiffLines.length) { + if ( + collapsed && + !highlightedDiffLines && + parallelDiffLines !== undefined && + !parallelDiffLines.length + ) { this.handleLoadCollapsedDiff(); } else { this.file.collapsed = !this.file.collapsed; + this.file.renderIt = true; } }, handleLoadCollapsedDiff() { @@ -65,6 +71,7 @@ export default { .then(() => { this.isLoadingCollapsedDiff = false; this.file.collapsed = false; + this.file.renderIt = true; }) .catch(() => { this.isLoadingCollapsedDiff = false; diff --git a/app/assets/javascripts/diffs/store/actions.js b/app/assets/javascripts/diffs/store/actions.js index cf42166e243..4ab6ceb249a 100644 --- a/app/assets/javascripts/diffs/store/actions.js +++ b/app/assets/javascripts/diffs/store/actions.js @@ -31,7 +31,9 @@ export const fetchDiffFiles = ({ state, commit }) => { export const startRenderDiffsQueue = ({ state, commit }) => { const checkItem = () => { - const nextFile = state.diffFiles.find(file => !file.renderIt && !file.collapsed); + const nextFile = state.diffFiles.find( + file => !file.renderIt && (!file.collapsed || !file.text), + ); if (nextFile) { requestAnimationFrame(() => { commit(types.RENDER_FILE, nextFile); diff --git a/app/assets/javascripts/diffs/store/mutations.js b/app/assets/javascripts/diffs/store/mutations.js index d8e32a09b16..e5c143696e8 100644 --- a/app/assets/javascripts/diffs/store/mutations.js +++ b/app/assets/javascripts/diffs/store/mutations.js @@ -20,13 +20,6 @@ export default { diffData.diffFiles.forEach(file => { if (file.parallelDiffLines) { file.parallelDiffLines.forEach(line => { - // eslint-disable-next-line no-param-reassign - delete line.text; - }); - } - - if (file.highlightedDiffLines) { - file.highlightedDiffLines.forEach(line => { // eslint-disable-next-line no-param-reassign if (line.left) delete line.left.text; // eslint-disable-next-line no-param-reassign @@ -35,12 +28,19 @@ export default { } if (file.highlightedDiffLines) { - showingLines += file.parallelDiffLines.length; - Object.assign(file, { - renderIt: showingLines < 200, - collapsed: showingLines > 2000, + file.highlightedDiffLines.forEach(line => { + // eslint-disable-next-line no-param-reassign + delete line.text; }); } + + if (file.highlightedDiffLines) { + showingLines += file.parallelDiffLines.length; + } + Object.assign(file, { + renderIt: showingLines < 200, + collapsed: file.text && showingLines > 2000, + }); }); Object.assign(state, {