GitLab steht Mittwoch, den 23. September, zwischen 10:00 und 12:00 Uhr aufgrund von Wartungsarbeiten nicht zur Verfügung.

Commit 512f9624 authored by Phil Hughes's avatar Phil Hughes

Fix diff files not rendering

Fixes some diff files not rendering when the renderIt
property is updated.
Previously it was using a local copy of renderIt which meant
Vue wouldn't update it when the files renderIt property was updates
parent 8f2221a8
...@@ -35,7 +35,6 @@ export default { ...@@ -35,7 +35,6 @@ export default {
isLoadingCollapsedDiff: false, isLoadingCollapsedDiff: false,
forkMessageVisible: false, forkMessageVisible: false,
isCollapsed: this.file.viewer.collapsed || false, isCollapsed: this.file.viewer.collapsed || false,
renderIt: this.file.renderIt,
}; };
}, },
computed: { computed: {
...@@ -53,7 +52,7 @@ export default { ...@@ -53,7 +52,7 @@ export default {
); );
}, },
showLoadingIcon() { showLoadingIcon() {
return this.isLoadingCollapsedDiff || (!this.renderIt && !this.isCollapsed); return this.isLoadingCollapsedDiff || (!this.file.renderIt && !this.isCollapsed);
}, },
hasDiffLines() { hasDiffLines() {
return ( return (
...@@ -80,13 +79,13 @@ export default { ...@@ -80,13 +79,13 @@ export default {
eventHub.$on(`loadCollapsedDiff/${this.file.file_hash}`, this.handleLoadCollapsedDiff); eventHub.$on(`loadCollapsedDiff/${this.file.file_hash}`, this.handleLoadCollapsedDiff);
}, },
methods: { methods: {
...mapActions('diffs', ['loadCollapsedDiff', 'assignDiscussionsToDiff']), ...mapActions('diffs', ['loadCollapsedDiff', 'assignDiscussionsToDiff', 'setRenderIt']),
handleToggle() { handleToggle() {
if (!this.hasDiffLines) { if (!this.hasDiffLines) {
this.handleLoadCollapsedDiff(); this.handleLoadCollapsedDiff();
} else { } else {
this.isCollapsed = !this.isCollapsed; this.isCollapsed = !this.isCollapsed;
this.renderIt = true; this.setRenderIt(this.file);
} }
}, },
handleLoadCollapsedDiff() { handleLoadCollapsedDiff() {
...@@ -96,7 +95,7 @@ export default { ...@@ -96,7 +95,7 @@ export default {
.then(() => { .then(() => {
this.isLoadingCollapsedDiff = false; this.isLoadingCollapsedDiff = false;
this.isCollapsed = false; this.isCollapsed = false;
this.renderIt = true; this.setRenderIt(this.file);
}) })
.then(() => { .then(() => {
requestIdleCallback( requestIdleCallback(
......
...@@ -130,6 +130,8 @@ export const startRenderDiffsQueue = ({ state, commit }) => { ...@@ -130,6 +130,8 @@ export const startRenderDiffsQueue = ({ state, commit }) => {
return checkItem(); return checkItem();
}; };
export const setRenderIt = ({ commit }, file) => commit(types.RENDER_FILE, file);
export const setInlineDiffViewType = ({ commit }) => { export const setInlineDiffViewType = ({ commit }) => {
commit(types.SET_DIFF_VIEW_TYPE, INLINE_DIFF_VIEW_TYPE); commit(types.SET_DIFF_VIEW_TYPE, INLINE_DIFF_VIEW_TYPE);
......
...@@ -28,8 +28,7 @@ describe('DiffFile', () => { ...@@ -28,8 +28,7 @@ describe('DiffFile', () => {
expect(el.querySelector('.file-title-name').innerText.indexOf(file_path)).toBeGreaterThan(-1); expect(el.querySelector('.file-title-name').innerText.indexOf(file_path)).toBeGreaterThan(-1);
expect(el.querySelector('.js-syntax-highlight')).toBeDefined(); expect(el.querySelector('.js-syntax-highlight')).toBeDefined();
expect(vm.renderIt).toEqual(false); vm.file.renderIt = true;
vm.renderIt = true;
vm.$nextTick(() => { vm.$nextTick(() => {
expect(el.querySelectorAll('.line_content').length).toBeGreaterThan(5); expect(el.querySelectorAll('.line_content').length).toBeGreaterThan(5);
...@@ -41,7 +40,7 @@ describe('DiffFile', () => { ...@@ -41,7 +40,7 @@ describe('DiffFile', () => {
expect(vm.$el.querySelectorAll('.diff-content').length).toEqual(1); expect(vm.$el.querySelectorAll('.diff-content').length).toEqual(1);
expect(vm.isCollapsed).toEqual(false); expect(vm.isCollapsed).toEqual(false);
vm.isCollapsed = true; vm.isCollapsed = true;
vm.renderIt = true; vm.file.renderIt = true;
vm.$nextTick(() => { vm.$nextTick(() => {
expect(vm.$el.querySelectorAll('.diff-content').length).toEqual(0); expect(vm.$el.querySelectorAll('.diff-content').length).toEqual(0);
......
...@@ -29,6 +29,7 @@ import actions, { ...@@ -29,6 +29,7 @@ import actions, {
renderFileForDiscussionId, renderFileForDiscussionId,
setRenderTreeList, setRenderTreeList,
setShowWhitespace, setShowWhitespace,
setRenderIt,
} from '~/diffs/store/actions'; } from '~/diffs/store/actions';
import eventHub from '~/notes/event_hub'; import eventHub from '~/notes/event_hub';
import * as types from '~/diffs/store/mutation_types'; import * as types from '~/diffs/store/mutation_types';
...@@ -855,4 +856,10 @@ describe('DiffsStoreActions', () => { ...@@ -855,4 +856,10 @@ describe('DiffsStoreActions', () => {
expect(window.history.pushState).toHaveBeenCalled(); expect(window.history.pushState).toHaveBeenCalled();
}); });
}); });
describe('setRenderIt', () => {
it('commits RENDER_FILE', done => {
testAction(setRenderIt, 'file', {}, [{ type: types.RENDER_FILE, payload: 'file' }], [], done);
});
});
}); });
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment