summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Luís <aluis@gitlab.com>2018-11-03 21:18:16 +0000
committerAndré Luís <aluis@gitlab.com>2018-11-03 21:37:19 +0000
commite9fb31efbb2af95f134742cf03a117c6e6fd9394 (patch)
treed852dfcc931ffbf762a0bfd6ad9ee4868434c998
parent105169436129fa5cebd94de4210bd9fdf18b7daf (diff)
downloadgitlab-ce-e9fb31efbb2af95f134742cf03a117c6e6fd9394.tar.gz
Avoid applying same discussion twice to same line
-rw-r--r--app/assets/javascripts/diffs/store/mutations.js21
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 : [],
},
};
}