From 64d0f1e20e9a8f673d30d706fec5c03c9723a3fe Mon Sep 17 00:00:00 2001 From: Tim Zallmann Date: Tue, 7 Aug 2018 17:26:15 +0200 Subject: Fixed text removal memory saving + Fixed collapsed non text files --- app/assets/javascripts/diffs/components/diff_file.vue | 9 ++++++++- app/assets/javascripts/diffs/store/actions.js | 4 +++- app/assets/javascripts/diffs/store/mutations.js | 16 ++++++++-------- 3 files changed, 19 insertions(+), 10 deletions(-) (limited to 'app') 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 @@ -21,26 +21,26 @@ export default { if (file.parallelDiffLines) { file.parallelDiffLines.forEach(line => { // eslint-disable-next-line no-param-reassign - delete line.text; + if (line.left) delete line.left.text; + // eslint-disable-next-line no-param-reassign + if (line.right) delete line.right.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 - if (line.right) delete line.right.text; + delete line.text; }); } if (file.highlightedDiffLines) { showingLines += file.parallelDiffLines.length; - Object.assign(file, { - renderIt: showingLines < 200, - collapsed: showingLines > 2000, - }); } + Object.assign(file, { + renderIt: showingLines < 200, + collapsed: file.text && showingLines > 2000, + }); }); Object.assign(state, { -- cgit v1.2.1