diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-08-20 21:42:06 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-08-20 21:42:06 +0300 |
commit | 6e4e1050d9dba2b7b2523fdd1768823ab85feef4 (patch) | |
tree | 78be5963ec075d80116a932011d695dd33910b4e /app/assets/javascripts/diffs/store/utils.js | |
parent | 1ce776de4ae122aba3f349c02c17cebeaa8ecf07 (diff) |
Add latest changes from gitlab-org/gitlab@13-3-stable-ee
Diffstat (limited to 'app/assets/javascripts/diffs/store/utils.js')
-rw-r--r-- | app/assets/javascripts/diffs/store/utils.js | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/app/assets/javascripts/diffs/store/utils.js b/app/assets/javascripts/diffs/store/utils.js index bc85dd0a1d4..f014cddda32 100644 --- a/app/assets/javascripts/diffs/store/utils.js +++ b/app/assets/javascripts/diffs/store/utils.js @@ -18,6 +18,7 @@ import { SHOW_WHITESPACE, NO_SHOW_WHITESPACE, } from '../constants'; +import { prepareRawDiffFile } from '../diff_file'; export function findDiffFile(files, match, matchKey = 'file_hash') { return files.find(file => file[matchKey] === match); @@ -294,9 +295,10 @@ function cleanRichText(text) { return text ? text.replace(/^[+ -]/, '') : undefined; } -function prepareLine(line) { +function prepareLine(line, file) { if (!line.alreadyPrepared) { Object.assign(line, { + commentsDisabled: file.brokenSymlink, rich_text: cleanRichText(line.rich_text), discussionsExpanded: true, discussions: [], @@ -330,7 +332,7 @@ export function prepareLineForRenamedFile({ line, diffViewType, diffFile, index old_line: lineNumber, }; - prepareLine(cleanLine); // WARNING: In-Place Mutations! + prepareLine(cleanLine, diffFile); // WARNING: In-Place Mutations! if (diffViewType === PARALLEL_DIFF_VIEW_TYPE) { return { @@ -348,19 +350,19 @@ function prepareDiffFileLines(file) { const parallelLines = file.parallel_diff_lines; let parallelLinesCount = 0; - inlineLines.forEach(prepareLine); + inlineLines.forEach(line => prepareLine(line, file)); // WARNING: In-Place Mutations! parallelLines.forEach((line, index) => { Object.assign(line, { line_code: getLineCode(line, index) }); if (line.left) { parallelLinesCount += 1; - prepareLine(line.left); + prepareLine(line.left, file); // WARNING: In-Place Mutations! } if (line.right) { parallelLinesCount += 1; - prepareLine(line.right); + prepareLine(line.right, file); // WARNING: In-Place Mutations! } }); @@ -407,6 +409,7 @@ function deduplicateFilesList(files) { export function prepareDiffData(diff, priorFiles = []) { const cleanedFiles = (diff.diff_files || []) + .map((file, index, allFiles) => prepareRawDiffFile({ file, allFiles })) .map(ensureBasicDiffFileLines) .map(prepareDiffFileLines) .map(finalizeDiffFile); @@ -477,6 +480,10 @@ export function getDiffPositionByLineCode(diffFiles, useSingleDiffStyle) { // This method will check whether the discussion is still applicable // to the diff line in question regarding different versions of the MR export function isDiscussionApplicableToLine({ discussion, diffPosition, latestDiff }) { + if (!diffPosition) { + return false; + } + const { line_code, ...dp } = diffPosition; // Removing `line_range` from diffPosition because the backend does not // yet consistently return this property. This check can be removed, |