Remove all generic CustomEvents In the referenced bug we have identified generic CustomEvent as being harmful. It is similar to allowing `any` as a type. This is just a random Friday cleanup for technical excellence. After this change there is only one match for this regexp, which has an associated TODO: ([^w].|^)CustomEvent([^<]|$) Release-Notes: skip Google-Bug-Id: b/265892992 Change-Id: Iff1fb96101900d924533bcecb638cc68174a3462
diff --git a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.ts b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.ts index b9a04bd..01399e9 100644 --- a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.ts +++ b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.ts
@@ -947,7 +947,7 @@ return createSearchUrl({hashtag, statuses: ['open', 'merged']}); } - private async handleTopicRemoved(e: CustomEvent) { + private async handleTopicRemoved(e: Event) { assertIsDefined(this.change, 'change'); const target = e.composedPath()[0] as GrLinkedChip; target.disabled = true; @@ -962,7 +962,7 @@ } // private but used in test - async handleHashtagRemoved(e: CustomEvent) { + async handleHashtagRemoved(e: Event) { e.preventDefault(); assertIsDefined(this.change, 'change'); const target = e.target as GrLinkedChip;
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts index 2798bb9..7091310 100644 --- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts +++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts
@@ -117,6 +117,7 @@ import { EditableContentSaveEvent, EventType, + FileActionTapEvent, OpenFixPreviewEvent, ShowAlertEventDetail, SwitchTabEvent, @@ -3097,7 +3098,7 @@ return classes.join(' '); } - private handleFileActionTap(e: CustomEvent<{path: string; action: string}>) { + private handleFileActionTap(e: FileActionTapEvent) { e.preventDefault(); assertIsDefined(this.fileListHeader); const controls =
diff --git a/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.ts b/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.ts index f73dab9..5744b02 100644 --- a/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.ts +++ b/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.ts
@@ -41,6 +41,7 @@ import {createChangeUrl} from '../../../models/views/change'; import {userModelToken} from '../../../models/user/user-model'; import {changeModelToken} from '../../../models/change/change-model'; +import {PatchRangeChangeEvent} from '../../diff/gr-patch-range-select/gr-patch-range-select'; @customElement('gr-file-list-header') export class GrFileListHeader extends LitElement { @@ -403,7 +404,7 @@ return shownFileCount <= maxFilesForBulkActions; } - handlePatchChange(e: CustomEvent) { + handlePatchChange(e: PatchRangeChangeEvent) { const {basePatchNum, patchNum} = e.detail; if ( (basePatchNum === this.basePatchNum && patchNum === this.patchNum) ||
diff --git a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.ts b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.ts index f3c23aa..da49af0 100644 --- a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.ts +++ b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.ts
@@ -116,7 +116,11 @@ import {sharedStyles} from '../../../styles/shared-styles'; import {when} from 'lit/directives/when.js'; import {classMap} from 'lit/directives/class-map.js'; -import {ValueChangedEvent} from '../../../types/events'; +import { + AddReviewerEvent, + RemoveReviewerEvent, + ValueChangedEvent, +} from '../../../types/events'; import {customElement, property, state, query} from 'lit/decorators.js'; import {subscribe} from '../../lit/subscription-controller'; import {configModelToken} from '../../../models/config/config-model'; @@ -723,17 +727,19 @@ // Plugins on reply-reviewers endpoint can take advantage of these // events to add / remove reviewers - this.addEventListener('add-reviewer', e => { + this.addEventListener('add-reviewer', (e: AddReviewerEvent) => { + const reviewer = e.detail.reviewer; // Only support account type, see more from: // elements/shared/gr-account-list/gr-account-list.js#addAccountItem this.reviewersList?.addAccountItem({ - account: (e as CustomEvent).detail.reviewer, + account: reviewer, count: 1, }); }); - this.addEventListener('remove-reviewer', e => { - this.reviewersList?.removeAccount((e as CustomEvent).detail.reviewer); + this.addEventListener('remove-reviewer', (e: RemoveReviewerEvent) => { + const reviewer = e.detail.reviewer; + this.reviewersList?.removeAccount(reviewer); }); }
diff --git a/polygerrit-ui/app/elements/change/gr-thread-list/gr-thread-list.ts b/polygerrit-ui/app/elements/change/gr-thread-list/gr-thread-list.ts index c09d2a2..599e38b 100644 --- a/polygerrit-ui/app/elements/change/gr-thread-list/gr-thread-list.ts +++ b/polygerrit-ui/app/elements/change/gr-thread-list/gr-thread-list.ts
@@ -28,7 +28,11 @@ } from '../../../utils/comment-util'; import {pluralize} from '../../../utils/string-util'; import {assertIsDefined} from '../../../utils/common-util'; -import {CommentTabState, TabState} from '../../../types/events'; +import { + CommentTabState, + TabState, + ValueChangedEvent, +} from '../../../types/events'; import {DropdownItem} from '../../shared/gr-dropdown-list/gr-dropdown-list'; import {GrAccountChip} from '../../shared/gr-account-chip/gr-account-chip'; import {css, html, LitElement, PropertyValues} from 'lit'; @@ -365,7 +369,7 @@ <gr-dropdown-list id="sortDropdown" .value=${this.sortDropdownValue} - @value-change=${(e: CustomEvent) => + @value-change=${(e: ValueChangedEvent<SortDropdownState>) => (this.sortDropdownValue = e.detail.value)} .items=${this.getSortDropdownEntries()} > @@ -521,7 +525,7 @@ } // private, but visible for testing - handleCommentsDropdownValueChange(e: CustomEvent) { + handleCommentsDropdownValueChange(e: ValueChangedEvent<CommentTabState>) { const value = e.detail.value; switch (value) { case CommentTabState.UNRESOLVED: