Move move-link-click event details to API

Also make the naming of the line number field consistent with the
CreateCommentEventDetail.

Change-Id: Ie4a114c2ce3ca16ea71cd0f6618d4d3a97e2e9c7
This commit is contained in:
Ole Rehmsen
2021-02-05 13:00:48 +01:00
parent ede38a5083
commit d99be5e5cd
5 changed files with 20 additions and 19 deletions

View File

@@ -229,8 +229,8 @@ export declare type LineNumber = number | 'FILE';
/** The detail of the 'create-comment' event dispatched by gr-diff. */
export declare interface CreateCommentEventDetail {
lineNum: LineNumber;
side: Side;
lineNum: LineNumber;
range: CommentRange | undefined;
}
@@ -240,3 +240,8 @@ export declare interface ContentLoadNeededEventDetail {
right: LineRange;
};
}
export declare interface MovedLinkClickedEventDetail {
side: Side;
lineNum: LineNumber;
}

View File

@@ -14,7 +14,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import {ContentLoadNeededEventDetail} from '../../../api/diff';
import {
ContentLoadNeededEventDetail,
MovedLinkClickedEventDetail,
} from '../../../api/diff';
import {getBaseUrl} from '../../../utils/url-util';
import {GrDiffLine, GrDiffLineType, LineNumber} from '../gr-diff/gr-diff-line';
import {
@@ -26,7 +29,6 @@ import {BlameInfo} from '../../../types/common';
import {DiffInfo, DiffPreferencesInfo} from '../../../types/diff';
import {DiffViewMode, Side} from '../../../constants/constants';
import {DiffLayer} from '../../../types/types';
import {MovedChunkGoToLineDetail} from '../../../types/events';
import {pluralize} from '../../../utils/string-util';
/**
@@ -794,9 +796,9 @@ export abstract class GrDiffBuilder {
anchor.addEventListener('click', e => {
e.preventDefault();
anchor.dispatchEvent(
new CustomEvent<MovedChunkGoToLineDetail>('moved-link-clicked', {
new CustomEvent<MovedLinkClickedEventDetail>('moved-link-clicked', {
detail: {
line,
lineNum: line,
side,
},
composed: true,

View File

@@ -421,7 +421,7 @@ suite('gr-diff-cursor tests', () => {
const [startLineAnchor] = movedIn.querySelectorAll('a');
const onMovedLinkClicked = e => {
assert.deepEqual(e.detail, {line: 4, side: 'left'});
assert.deepEqual(e.detail, {lineNum: 4, side: 'left'});
done();
};
assert.equal(startLineAnchor.textContent, '4');
@@ -436,7 +436,7 @@ suite('gr-diff-cursor tests', () => {
const [, endLineAnchor] = movedOut.querySelectorAll('a');
const onMovedLinkClicked = e => {
assert.deepEqual(e.detail, {line: 4, side: 'right'});
assert.deepEqual(e.detail, {lineNum: 4, side: 'right'});
done();
};
assert.equal(endLineAnchor.textContent, '4');

View File

@@ -61,7 +61,7 @@ import {FlattenedNodesObserver} from '@polymer/polymer/lib/utils/flattened-nodes
import {PolymerDeepPropertyChange} from '@polymer/polymer/interfaces';
import {AbortStop} from '../../shared/gr-cursor-manager/gr-cursor-manager';
import {fireAlert, fireEvent} from '../../../utils/event-util';
import {MovedChunkGoToLineEvent} from '../../../types/events';
import {MovedLinkClickedEvent} from '../../../types/events';
// TODO(davido): See: https://github.com/GoogleChromeLabs/shadow-selection-polyfill/issues/9
// @ts-ignore
import * as shadow from 'shadow-selection-polyfill/shadow.js';
@@ -554,8 +554,8 @@ export class GrDiff extends GestureEventListeners(
);
}
_movedLinkClicked(e: MovedChunkGoToLineEvent) {
this._dispatchSelectedLine(e.detail.line, e.detail.side);
_movedLinkClicked(e: MovedLinkClickedEvent) {
this._dispatchSelectedLine(e.detail.lineNum, e.detail.side);
}
addDraftAtLine(el: Element) {

View File

@@ -17,9 +17,8 @@
import {EventApi} from '@polymer/polymer/lib/legacy/polymer.dom';
import {PatchSetNum, UrlEncodedCommentId} from './common';
import {UIComment} from '../utils/comment-util';
import {Side} from '../constants/constants';
import {LineNumber} from '../elements/diff/gr-diff/gr-diff-line';
import {FetchRequest} from './types';
import {MovedLinkClickedEventDetail} from '../api/diff';
export interface TitleChangeEventDetail {
title: string;
@@ -164,16 +163,11 @@ export interface ReloadEventDetail {
export type ReloadEvent = CustomEvent<ReloadEventDetail>;
export interface MovedChunkGoToLineDetail {
side: Side;
line: LineNumber;
}
export type MovedChunkGoToLineEvent = CustomEvent<MovedChunkGoToLineDetail>;
export type MovedLinkClickedEvent = CustomEvent<MovedLinkClickedEventDetail>;
declare global {
interface HTMLElementEventMap {
'moved-link-clicked': MovedChunkGoToLineEvent;
'moved-link-clicked': MovedLinkClickedEvent;
}
}