diff --git a/src/MatrixTools.js b/src/MatrixTools.js index 7fded4adea..372f17f69c 100644 --- a/src/MatrixTools.js +++ b/src/MatrixTools.js @@ -16,21 +16,13 @@ limitations under the License. module.exports = { /** - * Given a room object, return the canonical alias for it - * if there is one. Otherwise return null; + * Given a room object, return the alias we should use for it, + * if any. This could be the canonical alias if one exists, otherwise + * an alias selected arbitrarily but deterministically from the list + * of aliases. Otherwise return null; */ - getCanonicalAliasForRoom: function(room) { - var aliasEvents = room.currentState.getStateEvents( - "m.room.aliases" - ); - // Canonical aliases aren't implemented yet, so just return the first - for (var j = 0; j < aliasEvents.length; j++) { - var aliases = aliasEvents[j].getContent().aliases; - if (aliases && aliases.length) { - return aliases[0]; - } - } - return null; + getDisplayAliasForRoom: function(room) { + return room.getCanonicalAlias() || room.getAliases()[0]; }, /** diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js index 9899f66cc5..1973fedbcd 100644 --- a/src/components/structures/MatrixChat.js +++ b/src/components/structures/MatrixChat.js @@ -539,7 +539,7 @@ module.exports = React.createClass({ var presentedId = roomAlias || roomId; var room = MatrixClientPeg.get().getRoom(roomId); if (room) { - var theAlias = MatrixTools.getCanonicalAliasForRoom(room); + var theAlias = MatrixTools.getDisplayAliasForRoom(room); if (theAlias) presentedId = theAlias; // No need to do this given RoomView triggers it itself... @@ -631,7 +631,7 @@ module.exports = React.createClass({ var presentedId = self.state.currentRoomId; var room = MatrixClientPeg.get().getRoom(self.state.currentRoomId); if (room) { - var theAlias = MatrixTools.getCanonicalAliasForRoom(room); + var theAlias = MatrixTools.getDisplayAliasForRoom(room); if (theAlias) presentedId = theAlias; }