Added constants for Render values + Optimised for Loop
This commit is contained in:
parent
53468a7771
commit
7e390dcc25
|
|
@ -25,3 +25,6 @@ export const CONTEXT_LINE_CLASS_NAME = 'diff-expanded';
|
|||
export const UNFOLD_COUNT = 20;
|
||||
export const COUNT_OF_AVATARS_IN_GUTTER = 3;
|
||||
export const LENGTH_OF_AVATAR_TOOLTIP = 17;
|
||||
|
||||
export const LINES_TO_BE_RENDERED_DIRECTLY = 100;
|
||||
export const MAX_LINES_TO_BE_RENDERED = 2000;
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import Vue from 'vue';
|
|||
import _ from 'underscore';
|
||||
import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';
|
||||
import { findDiffFile, addLineReferences, removeMatchLine, addContextLines } from './utils';
|
||||
import { LINES_TO_BE_RENDERED_DIRECTLY, MAX_LINES_TO_BE_RENDERED } from '../constants';
|
||||
import * as types from './mutation_types';
|
||||
|
||||
export default {
|
||||
|
|
@ -17,31 +18,40 @@ export default {
|
|||
[types.SET_DIFF_DATA](state, data) {
|
||||
const diffData = convertObjectPropsToCamelCase(data, { deep: true });
|
||||
let showingLines = 0;
|
||||
diffData.diffFiles.forEach(file => {
|
||||
const filesLength = diffData.diffFiles.length;
|
||||
let i;
|
||||
for (i = 0; i < filesLength; i += 1) {
|
||||
const file = diffData.diffFiles[i];
|
||||
if (file.parallelDiffLines) {
|
||||
file.parallelDiffLines.forEach(line => {
|
||||
const linesLength = file.parallelDiffLines.length;
|
||||
let u = 0;
|
||||
for (u = 0; u < linesLength; u += 1) {
|
||||
const line = file.parallelDiffLines[u];
|
||||
// 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;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (file.highlightedDiffLines) {
|
||||
file.highlightedDiffLines.forEach(line => {
|
||||
const linesLength = file.highlightedDiffLines.length;
|
||||
let u = 0;
|
||||
for (u = 0; u < linesLength; u += 1) {
|
||||
const line = file.highlightedDiffLines[u];
|
||||
// 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,
|
||||
renderIt: showingLines < LINES_TO_BE_RENDERED_DIRECTLY,
|
||||
collapsed: file.text && showingLines > MAX_LINES_TO_BE_RENDERED,
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Object.assign(state, {
|
||||
...diffData,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import mutations from '~/diffs/store/mutations';
|
||||
import * as types from '~/diffs/store/mutation_types';
|
||||
import { INLINE_DIFF_VIEW_TYPE } from '~/diffs/constants';
|
||||
import diffFileMockData from '../mock_data/diff_file';
|
||||
|
||||
describe('DiffsStoreMutations', () => {
|
||||
describe('SET_BASE_CONFIG', () => {
|
||||
|
|
@ -24,6 +25,23 @@ describe('DiffsStoreMutations', () => {
|
|||
});
|
||||
});
|
||||
|
||||
describe('SET_DIFF_DATA', () => {
|
||||
it('should set diff data type properly', () => {
|
||||
const state = {};
|
||||
const diffMock = {
|
||||
diff_files: [diffFileMockData],
|
||||
};
|
||||
|
||||
mutations[types.SET_DIFF_DATA](state, diffMock);
|
||||
|
||||
const firstLine = state.diffFiles[0].parallelDiffLines[0];
|
||||
|
||||
expect(firstLine.right.text).toBeUndefined();
|
||||
expect(state.diffFiles[0].renderIt).toEqual(true);
|
||||
expect(state.diffFiles[0].collapsed).toEqual(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe('SET_DIFF_VIEW_TYPE', () => {
|
||||
it('should set diff view type properly', () => {
|
||||
const state = {};
|
||||
|
|
|
|||
Loading…
Reference in New Issue