Create UserId type User can be referenced with AccountId/GroupId/Email Address. Introduce a new type UserId as a union of all three type. Rename accountOrGroupKey to getUserId. Release-Notes: skip Google-bug-id: b/236921879 Change-Id: I7f611f48ad0d300aa48517029fcbe42df6baf837
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 cfcc299..6659602 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
@@ -26,7 +26,7 @@ SpecialFilePath, } from '../../../constants/constants'; import { - accountOrGroupKey, + getUserId, isAccountNewlyAdded, removeServiceUsers, toReviewInput, @@ -274,8 +274,7 @@ this._ccs = ccs.filter( cc => !this.mentionedUsers.some( - mentionedCC => - accountOrGroupKey(mentionedCC) === accountOrGroupKey(cc) + mentionedCC => getUserId(mentionedCC) === getUserId(cc) ) ); this.requestUpdate('ccs', ccs); @@ -1334,7 +1333,7 @@ // remove account-added event from GrAccountList. handleAccountAdded(e: CustomEvent<AccountInputDetail>) { const account = e.detail.account; - const key = accountOrGroupKey(account); + const key = getUserId(account); const reviewerType = (e.target as GrAccountList).getAttribute('id') === 'ccs' ? ReviewerType.CC @@ -1370,7 +1369,7 @@ let removals = difference( this.reviewersList?.removals() ?? [], ccAdditions, - (a, b) => accountOrGroupKey(a) === accountOrGroupKey(b) + (a, b) => getUserId(a) === getUserId(b) ).map(v => toReviewInput(v, ReviewerState.REMOVED)); reviewers.push(...removals); @@ -1378,7 +1377,7 @@ removals = difference( this.ccsList?.removals() ?? [], reviewerAdditions, - (a, b) => accountOrGroupKey(a) === accountOrGroupKey(b) + (a, b) => getUserId(a) === getUserId(b) ).map(v => toReviewInput(v, ReviewerState.REMOVED)); reviewers.push(...removals); @@ -1591,12 +1590,11 @@ const targetAccount = (e.target as GrAccountChip)?.account; if (!targetAccount) return; // TODO: Remove cast and add support for GroupId as id type - const id = accountOrGroupKey(targetAccount) as AccountId | EmailAddress; + const id = getUserId(targetAccount) as AccountId | EmailAddress; if (!id || !this.account || !this.change?.owner) return; - const self = id === accountOrGroupKey(this.account) ? '_SELF' : ''; - const role = - id === accountOrGroupKey(this.change.owner) ? 'OWNER' : '_REVIEWER'; + const self = id === getUserId(this.account) ? '_SELF' : ''; + const role = id === getUserId(this.change.owner) ? 'OWNER' : '_REVIEWER'; if (this.newAttentionSet.has(id)) { this.newAttentionSet.delete(id); @@ -1836,9 +1834,9 @@ return false; } - const key = accountOrGroupKey(entry); + const key = getUserId(entry); const finder = (entry: AccountInfo | GroupInfo) => - accountOrGroupKey(entry) === key; + getUserId(entry) === key; if (isCCs) { return this.ccs.find(finder) === undefined; }