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