diff --git a/src/components/views/avatars/RoomAvatar.js b/src/components/views/avatars/RoomAvatar.js index 72ca5f7f21..eed4070fd8 100644 --- a/src/components/views/avatars/RoomAvatar.js +++ b/src/components/views/avatars/RoomAvatar.js @@ -67,14 +67,24 @@ module.exports = React.createClass({ }, getOneToOneAvatar: function(props) { - var userIds = Object.keys(props.room.currentState.members); + var mlist = props.room.currentState.members; + var userIds = []; + // for .. in optimisation to return early if there are >2 keys + for (var uid in mlist) { + if (mlist.hasOwnProperty(uid)) { + userIds.push(uid); + } + if (userIds.length > 2) { + return null; + } + } if (userIds.length == 2) { var theOtherGuy = null; - if (props.room.currentState.members[userIds[0]].userId == MatrixClientPeg.get().credentials.userId) { - theOtherGuy = props.room.currentState.members[userIds[1]]; + if (mlist[userIds[0]].userId == MatrixClientPeg.get().credentials.userId) { + theOtherGuy = mlist[userIds[1]]; } else { - theOtherGuy = props.room.currentState.members[userIds[0]]; + theOtherGuy = mlist[userIds[0]]; } return theOtherGuy.getAvatarUrl( MatrixClientPeg.get().getHomeserverUrl(), @@ -82,7 +92,7 @@ module.exports = React.createClass({ false ); } else if (userIds.length == 1) { - return props.room.currentState.members[userIds[0]].getAvatarUrl( + return mlist[userIds[0]].getAvatarUrl( MatrixClientPeg.get().getHomeserverUrl(), props.width, props.height, props.resizeMethod, false diff --git a/src/components/views/rooms/RoomHeader.js b/src/components/views/rooms/RoomHeader.js index 6fab2a9989..0b52281507 100644 --- a/src/components/views/rooms/RoomHeader.js +++ b/src/components/views/rooms/RoomHeader.js @@ -20,6 +20,7 @@ var React = require('react'); var sdk = require('../../../index'); var dis = require("../../../dispatcher"); var MatrixClientPeg = require('../../../MatrixClientPeg'); +var Modal = require("../../../Modal"); var linkify = require('linkifyjs'); var linkifyElement = require('linkifyjs/element'); @@ -103,17 +104,14 @@ module.exports = React.createClass({ console.error("No ChangeAvatar found to upload image to!"); return; } - changeAvatar.onFileSelected(ev).done(function() { - // dunno if the avatar changed, re-check it. - self._refreshFromServer(); - }, function(err) { + changeAvatar.onFileSelected(ev).catch(function(err) { var errMsg = (typeof err === "string") ? err : (err.error || ""); var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); Modal.createDialog(ErrorDialog, { title: "Error", description: "Failed to set avatar. " + errMsg }); - }); + }).done(); }, getRoomName: function() {