Merge "Create getSuggestedReviewerInfoName"
diff --git a/polygerrit-ui/app/services/gr-reviewer-suggestions-provider/gr-reviewer-suggestions-provider.ts b/polygerrit-ui/app/services/gr-reviewer-suggestions-provider/gr-reviewer-suggestions-provider.ts
index 842dace..34187fe 100644
--- a/polygerrit-ui/app/services/gr-reviewer-suggestions-provider/gr-reviewer-suggestions-provider.ts
+++ b/polygerrit-ui/app/services/gr-reviewer-suggestions-provider/gr-reviewer-suggestions-provider.ts
@@ -3,25 +3,24 @@
* Copyright 2019 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
-import {
- getAccountDisplayName,
- getGroupDisplayName,
-} from '../../utils/display-name-util';
import {RestApiService} from '../gr-rest-api/gr-rest-api';
import {
- AccountInfo,
isReviewerAccountSuggestion,
isReviewerGroupSuggestion,
NumericChangeId,
ServerInfo,
+ SuggestedReviewerAccountInfo,
SuggestedReviewerInfo,
Suggestion,
} from '../../types/common';
-import {assertNever} from '../../utils/common-util';
import {AutocompleteSuggestion} from '../../elements/shared/gr-autocomplete/gr-autocomplete';
import {allSettled, isFulfilled} from '../../utils/async-util';
import {isDefined, ParsedChangeInfo} from '../../types/types';
-import {accountKey} from '../../utils/account-util';
+import {
+ accountKey,
+ getSuggestedReviewerName,
+ isAccountSuggestion,
+} from '../../utils/account-util';
import {
AccountId,
ChangeInfo,
@@ -96,30 +95,11 @@
makeSuggestionItem(
suggestion: Suggestion
): AutocompleteSuggestion<SuggestedReviewerInfo> {
- if (isReviewerAccountSuggestion(suggestion)) {
- // Reviewer is an account suggestion from getChangeSuggestedReviewers.
- return {
- name: getAccountDisplayName(this.config, suggestion.account),
- value: suggestion,
- };
- }
-
- if (isReviewerGroupSuggestion(suggestion)) {
- // Reviewer is a group suggestion from getChangeSuggestedReviewers.
- return {
- name: getGroupDisplayName(suggestion.group),
- value: suggestion,
- };
- }
-
- if (isAccountSuggestion(suggestion)) {
- // Reviewer is an account suggestion from getSuggestedAccounts.
- return {
- name: getAccountDisplayName(this.config, suggestion),
- value: {account: suggestion, count: 1},
- };
- }
- assertNever(suggestion, 'Received an incorrect suggestion');
+ const name = getSuggestedReviewerName(suggestion, this.config);
+ const value = isAccountSuggestion(suggestion)
+ ? ({account: suggestion, count: 1} as SuggestedReviewerAccountInfo)
+ : suggestion;
+ return {name, value};
}
private getSuggestionsForChange(
@@ -160,7 +140,3 @@
}
return undefined;
}
-
-function isAccountSuggestion(s: Suggestion): s is AccountInfo {
- return (s as AccountInfo)._account_id !== undefined;
-}
diff --git a/polygerrit-ui/app/utils/account-util.ts b/polygerrit-ui/app/utils/account-util.ts
index 7dc9a62..68f6b42 100644
--- a/polygerrit-ui/app/utils/account-util.ts
+++ b/polygerrit-ui/app/utils/account-util.ts
@@ -16,10 +16,17 @@
ReviewerInput,
ServerInfo,
UserId,
+ Suggestion,
+ isReviewerAccountSuggestion,
+ isReviewerGroupSuggestion,
} from '../types/common';
import {AccountTag, ReviewerState} from '../constants/constants';
import {assertNever, hasOwnProperty} from './common-util';
-import {getDisplayName} from './display-name-util';
+import {
+ getAccountDisplayName,
+ getDisplayName,
+ getGroupDisplayName,
+} from './display-name-util';
import {getApprovalInfo} from './label-util';
import {ParsedChangeInfo} from '../types/types';
@@ -220,3 +227,29 @@
}
throw new Error('Must be either an account or a group.');
}
+
+export function isAccountSuggestion(s: Suggestion): s is AccountInfo {
+ return (s as AccountInfo)._account_id !== undefined;
+}
+
+export function getSuggestedReviewerName(
+ suggestion: Suggestion,
+ config?: ServerInfo
+) {
+ if (isAccountSuggestion(suggestion)) {
+ // Reviewer is an account suggestion from getSuggestedAccounts.
+ return getAccountDisplayName(config, suggestion);
+ }
+
+ if (isReviewerAccountSuggestion(suggestion)) {
+ // Reviewer is an account suggestion from getChangeSuggestedReviewers.
+ return getAccountDisplayName(config, suggestion.account);
+ }
+
+ if (isReviewerGroupSuggestion(suggestion)) {
+ // Reviewer is a group suggestion from getChangeSuggestedReviewers.
+ return getGroupDisplayName(suggestion.group);
+ }
+
+ assertNever(suggestion, 'Received an incorrect suggestion');
+}