diff options
author | André Luís <aluis@gitlab.com> | 2018-11-03 21:18:16 +0000 |
---|---|---|
committer | André Luís <aluis@gitlab.com> | 2018-11-03 21:37:19 +0000 |
commit | e9fb31efbb2af95f134742cf03a117c6e6fd9394 (patch) | |
tree | d852dfcc931ffbf762a0bfd6ad9ee4868434c998 | |
parent | 105169436129fa5cebd94de4210bd9fdf18b7daf (diff) | |
download | gitlab-ce-e9fb31efbb2af95f134742cf03a117c6e6fd9394.tar.gz |
Avoid applying same discussion twice to same line
-rw-r--r-- | app/assets/javascripts/diffs/store/mutations.js | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/app/assets/javascripts/diffs/store/mutations.js b/app/assets/javascripts/diffs/store/mutations.js index 38a65f111a2..2d38c3ad4b9 100644 --- a/app/assets/javascripts/diffs/store/mutations.js +++ b/app/assets/javascripts/diffs/store/mutations.js @@ -110,9 +110,14 @@ export default { if (file.highlightedDiffLines) { file.highlightedDiffLines = file.highlightedDiffLines.map(line => { if (lineCheck(line)) { + const lineDiscussions = + line && line.discussions.indexOf(discussion) === -1 + ? line.discussions.concat(discussion) + : line.discussions || []; + return { ...line, - discussions: line.discussions.concat(discussion), + discussions: lineDiscussions, }; } @@ -126,14 +131,24 @@ export default { const right = line.right && lineCheck(line.right); if (left || right) { + // Avoid setting the same discussion twice on the same line + const leftDiscussion = + line.left && line.left.discussions.indexOf(discussion) === -1 + ? line.left.discussions.concat(discussion) + : (line.left && line.left.discussions) || []; + const rightDiscussion = + line.right && line.right.discussions.indexOf(discussion) === -1 + ? line.right.discussions.concat(discussion) + : (line.right && line.right.discussions) || []; + return { left: { ...line.left, - discussions: left ? line.left.discussions.concat(discussion) : [], + discussions: left ? leftDiscussion : [], }, right: { ...line.right, - discussions: right && !left ? line.right.discussions.concat(discussion) : [], + discussions: right && !left ? rightDiscussion : [], }, }; } |