From 7029ab07fc23f1b2da5d25324fdcb7addafb728e Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Wed, 25 Oct 2017 12:37:27 +0100 Subject: [PATCH 1/2] If no canonical alias, use first alias (and fallback to Unnamed) --- src/components/views/dialogs/AddressPickerDialog.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/components/views/dialogs/AddressPickerDialog.js b/src/components/views/dialogs/AddressPickerDialog.js index 8c6f033bdc..0a33e81677 100644 --- a/src/components/views/dialogs/AddressPickerDialog.js +++ b/src/components/views/dialogs/AddressPickerDialog.js @@ -282,10 +282,15 @@ module.exports = React.createClass({ } const avatarEvent = room.currentState.getStateEvents('m.room.avatar', ''); const avatarUrl = avatarEvent ? avatarEvent.getContent().url : undefined; + const aliasEvents = room.currentState.getStateEvents('m.room.aliases'); + const aliases = aliasEvents.map((ev) => ev.getContent().aliases).reduce((a, b) => { + return a.concat(b); + }, []); + results.push({ room_id: room.roomId, avatar_url: avatarUrl, - name: name || canonicalAlias, + name: name || canonicalAlias || aliases[0] || _t('Unnamed Room'), }); }); this._processResults(results, query); From 27f845a7aaa05a4a9279f772d2fdfef982e8e759 Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Wed, 25 Oct 2017 12:42:58 +0100 Subject: [PATCH 2/2] Match on any alias --- src/components/views/dialogs/AddressPickerDialog.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/components/views/dialogs/AddressPickerDialog.js b/src/components/views/dialogs/AddressPickerDialog.js index 0a33e81677..5796e60cc9 100644 --- a/src/components/views/dialogs/AddressPickerDialog.js +++ b/src/components/views/dialogs/AddressPickerDialog.js @@ -272,20 +272,22 @@ module.exports = React.createClass({ const topicEvent = room.currentState.getStateEvents('m.room.topic', ''); const name = nameEvent ? nameEvent.getContent().name : ''; const canonicalAlias = room.getCanonicalAlias(); + const aliasEvents = room.currentState.getStateEvents('m.room.aliases'); + const aliases = aliasEvents.map((ev) => ev.getContent().aliases).reduce((a, b) => { + return a.concat(b); + }, []); const topic = topicEvent ? topicEvent.getContent().topic : ''; const nameMatch = (name || '').toLowerCase().includes(lowerCaseQuery); - const aliasMatch = (canonicalAlias || '').toLowerCase().includes(lowerCaseQuery); + const aliasMatch = aliases.some((alias) => + (alias || '').toLowerCase().includes(lowerCaseQuery), + ); const topicMatch = (topic || '').toLowerCase().includes(lowerCaseQuery); if (!(nameMatch || topicMatch || aliasMatch)) { return; } const avatarEvent = room.currentState.getStateEvents('m.room.avatar', ''); const avatarUrl = avatarEvent ? avatarEvent.getContent().url : undefined; - const aliasEvents = room.currentState.getStateEvents('m.room.aliases'); - const aliases = aliasEvents.map((ev) => ev.getContent().aliases).reduce((a, b) => { - return a.concat(b); - }, []); results.push({ room_id: room.roomId,