Use getAccountDisplayName in mentions dropdown
Google-bug-id: b/247748361
Release-Notes: skip
Change-Id: I6c085583247d97853902036889ced6f383f0d2a6
diff --git a/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea.ts b/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea.ts
index 3ea9c5d..7b5ce15 100644
--- a/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea.ts
+++ b/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea.ts
@@ -24,12 +24,14 @@
import {PropertyValues} from 'lit';
import {classMap} from 'lit/directives/class-map.js';
import {KnownExperimentId} from '../../../services/flags/flags';
-import {NumericChangeId} from '../../../api/rest-api';
+import {NumericChangeId, ServerInfo} from '../../../api/rest-api';
import {subscribe} from '../../lit/subscription-controller';
import {resolve} from '../../../models/dependency';
import {changeModelToken} from '../../../models/change/change-model';
import {assert} from '../../../utils/common-util';
import {ShortcutController} from '../../lit/shortcut-controller';
+import {getAccountDisplayName} from '../../../utils/display-name-util';
+import {configModelToken} from '../../../models/config/config-model';
const MAX_ITEMS_DROPDOWN = 10;
@@ -118,6 +120,10 @@
private readonly restApiService = getAppContext().restApiService;
+ private readonly getConfigModel = resolve(this, configModelToken);
+
+ private serverConfig?: ServerInfo;
+
private changeNum?: NumericChangeId;
// private but used in tests
@@ -135,6 +141,13 @@
() => this.getChangeModel().changeNum$,
x => (this.changeNum = x)
);
+ subscribe(
+ this,
+ () => this.getConfigModel().serverConfig$,
+ config => {
+ this.serverConfig = config;
+ }
+ );
this.shortcuts.addLocal({key: Key.UP}, e => this.handleUpKey(e), {
preventDefault: false,
});
@@ -600,6 +613,7 @@
}
}
+ // TODO(dhruvsri): merge with getAccountSuggestions in account-util
async computeReviewerSuggestions() {
this.suggestions = (
(await this.restApiService.getSuggestedAccounts(
@@ -612,7 +626,7 @@
.filter(account => account.email)
.map(account => {
return {
- text: `${account.name ?? ''} <${account.email}>`,
+ text: `${getAccountDisplayName(this.serverConfig, account)}`,
dataValue: account.email,
};
});
diff --git a/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea_test.ts b/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea_test.ts
index 76c5033..6837a71 100644
--- a/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea_test.ts
+++ b/polygerrit-ui/app/elements/shared/gr-textarea/gr-textarea_test.ts
@@ -137,7 +137,11 @@
test('mention selector opens when previous char is \n', async () => {
stubRestApi('getSuggestedAccounts').returns(
Promise.resolve([
- {...createAccountWithEmail('abc@google.com'), name: 'A'},
+ {
+ ...createAccountWithEmail('abc@google.com'),
+ name: 'A',
+ display_name: 'display A',
+ },
{...createAccountWithEmail('abcdef@google.com'), name: 'B'},
])
);
@@ -154,7 +158,7 @@
assert.deepEqual(element.suggestions, [
{
dataValue: 'abc@google.com',
- text: 'A <abc@google.com>',
+ text: 'display A <abc@google.com>',
},
{
dataValue: 'abcdef@google.com',