Commit ffcc311b authored by Kushal Pandya's avatar Kushal Pandya

Merge branch 'ph/227159/fixMultiLineCommentsOptionsInParallelView' into 'master'

Fixes multi line comments options in parallel mode

See merge request gitlab-org/gitlab!45557
parents 5dff8fa3 e816c746
...@@ -7,7 +7,7 @@ import noteForm from '../../notes/components/note_form.vue'; ...@@ -7,7 +7,7 @@ import noteForm from '../../notes/components/note_form.vue';
import MultilineCommentForm from '../../notes/components/multiline_comment_form.vue'; import MultilineCommentForm from '../../notes/components/multiline_comment_form.vue';
import autosave from '../../notes/mixins/autosave'; import autosave from '../../notes/mixins/autosave';
import userAvatarLink from '../../vue_shared/components/user_avatar/user_avatar_link.vue'; import userAvatarLink from '../../vue_shared/components/user_avatar/user_avatar_link.vue';
import { DIFF_NOTE_TYPE } from '../constants'; import { DIFF_NOTE_TYPE, PARALLEL_DIFF_VIEW_TYPE } from '../constants';
import { import {
commentLineOptions, commentLineOptions,
formatLineRange, formatLineRange,
...@@ -60,7 +60,7 @@ export default { ...@@ -60,7 +60,7 @@ export default {
diffViewType: state => state.diffs.diffViewType, diffViewType: state => state.diffs.diffViewType,
}), }),
...mapState('diffs', ['showSuggestPopover']), ...mapState('diffs', ['showSuggestPopover']),
...mapGetters('diffs', ['getDiffFileByHash']), ...mapGetters('diffs', ['getDiffFileByHash', 'diffLines']),
...mapGetters([ ...mapGetters([
'isLoggedIn', 'isLoggedIn',
'noteableType', 'noteableType',
...@@ -88,16 +88,30 @@ export default { ...@@ -88,16 +88,30 @@ export default {
commentLineOptions() { commentLineOptions() {
const combineSides = (acc, { left, right }) => { const combineSides = (acc, { left, right }) => {
// ignore null values match lines // ignore null values match lines
if (left && left.type !== 'match') acc.push(left); if (left) acc.push(left);
// if the line_codes are identically, return to avoid duplicates // if the line_codes are identically, return to avoid duplicates
if (left?.line_code === right?.line_code) return acc; if (
left?.line_code === right?.line_code ||
left?.type === 'old-nonewline' ||
right?.type === 'new-nonewline'
) {
return acc;
}
if (right && right.type !== 'match') acc.push(right); if (right && right.type !== 'match') acc.push(right);
return acc; return acc;
}; };
const getDiffLines = () => {
if (this.diffViewType === PARALLEL_DIFF_VIEW_TYPE) {
return (this.glFeatures.unifiedDiffLines
? this.diffLines(this.diffFile)
: this.diffFile.parallel_diff_lines
).reduce(combineSides, []);
}
return this.diffFile.highlighted_diff_lines;
};
const side = this.line.type === 'new' ? 'right' : 'left'; const side = this.line.type === 'new' ? 'right' : 'left';
const lines = this.diffFile.highlighted_diff_lines.length const lines = getDiffLines();
? this.diffFile.highlighted_diff_lines
: this.diffFile.parallel_diff_lines.reduce(combineSides, []);
return commentLineOptions(lines, this.line, this.line.line_code, side); return commentLineOptions(lines, this.line, this.line.line_code, side);
}, },
}, },
......
---
title: Fixed multi line comment options in parallel mode
merge_request: 45557
author:
type: fixed
...@@ -136,12 +136,6 @@ RSpec.describe 'User comments on a diff', :js do ...@@ -136,12 +136,6 @@ RSpec.describe 'User comments on a diff', :js do
add_comment('-13', '+15') add_comment('-13', '+15')
end end
it 'allows comments to start above hidden lines and end below' do
# click +28, select 21 add and verify comment
click_diff_line(find('div[data-path="files/ruby/popen.rb"] .new_line a[data-linenumber="28"]').find(:xpath, '../..'), 'right')
add_comment('21', '+28')
end
it 'allows comments on previously hidden lines at the top of a file' do it 'allows comments on previously hidden lines at the top of a file' do
# Click -9, expand up, select 1 add and verify comment # Click -9, expand up, select 1 add and verify comment
page.within('[data-path="files/ruby/popen.rb"]') do page.within('[data-path="files/ruby/popen.rb"]') do
......
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