diff --git a/src/Avatar.js b/src/Avatar.js index 02025a9384..c919630f96 100644 --- a/src/Avatar.js +++ b/src/Avatar.js @@ -24,7 +24,9 @@ module.exports = { MatrixClientPeg.get().getHomeserverUrl(), width, height, - resizeMethod + resizeMethod, + false, + false ); if (!url) { // member can be null here currently since on invites, the JS SDK @@ -36,18 +38,12 @@ module.exports = { }, defaultAvatarUrlForString: function(s) { + var images = [ '76cfa6', '50e2c2', 'f4c371' ]; var total = 0; for (var i = 0; i < s.length; ++i) { total += s.charCodeAt(i); } - switch (total % 3) { - case 0: - return "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAIAAAADnC86AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNrszQENADAIACB9QjNbxSKP4eagAFnTseHFErFYLBaLxWKxWCwWi8Vi8cX4CzAABSwCRWJw31gAAAAASUVORK5CYII="; - case 1: - return "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAIAAAADnC86AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNrszQENADAIACB9chOaxgCP4eagAFk9seHFErFYLBaLxWKxWCwWi8Vi8cX4CzAAtKMCks/JG8MAAAAASUVORK5CYII="; - case 2: - return "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAIAAAADnC86AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNrszQENADAIACB9YzNayQCP4eagADldseHFErFYLBaLxWKxWCwWi8Vi8cX4CzAAyiACeHwPiu4AAAAASUVORK5CYII="; - } + return 'img/' + images[total % images.length] + '.png'; } } diff --git a/src/components/views/avatars/MemberAvatar.js b/src/components/views/avatars/MemberAvatar.js index f65f11256b..4a6c9fb92e 100644 --- a/src/components/views/avatars/MemberAvatar.js +++ b/src/components/views/avatars/MemberAvatar.js @@ -43,10 +43,7 @@ module.exports = React.createClass({ }, defaultAvatarUrl: function(member, width, height, resizeMethod) { - if (this.skinnedDefaultAvatarUrl) { - return this.skinnedDefaultAvatarUrl(member, width, height, resizeMethod); - } - return "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAIAAAADnC86AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNrszQENADAIACB9QjNbxSKP4eagAFnTseHFErFYLBaLxWKxWCwWi8Vi8cX4CzAABSwCRWJw31gAAAAASUVORK5CYII="; + return Avatar.defaultAvatarUrlForString(member.userId); }, onError: function(ev) { @@ -60,22 +57,10 @@ module.exports = React.createClass({ }, _computeUrl: function() { - var url = this.props.member.getAvatarUrl( - MatrixClientPeg.get().getHomeserverUrl(), - this.props.width, - this.props.height, - this.props.resizeMethod, - false - ); - if (!url) { - url = this.defaultAvatarUrl( - this.props.member, - this.props.width, - this.props.height, - this.props.resizeMethod - ); - } - return url; + return Avatar.avatarUrlForMember(this.props.member, + this.props.width, + this.props.height, + this.props.resizeMethod); }, refreshUrl: function() { @@ -95,21 +80,6 @@ module.exports = React.createClass({ /////////////// - - avatarUrlForMember: function(member) { - return Avatar.avatarUrlForMember( - member, - this.props.member, - this.props.width, - this.props.height, - this.props.resizeMethod - ); - }, - - skinnedDefaultAvatarUrl: function(member, width, height, resizeMethod) { - return Avatar.defaultAvatarUrlForString(member.userId); - }, - render: function() { // XXX: recalculates default avatar url constantly if (this.state.imageUrl === this.defaultAvatarUrl(this.props.member)) { diff --git a/src/components/views/avatars/RoomAvatar.js b/src/components/views/avatars/RoomAvatar.js index 55f0e92cc1..95ec39de2e 100644 --- a/src/components/views/avatars/RoomAvatar.js +++ b/src/components/views/avatars/RoomAvatar.js @@ -15,6 +15,7 @@ limitations under the License. */ var React = require('react'); var MatrixClientPeg = require('../../../MatrixClientPeg'); +var Avatar = require('../../../Avatar'); module.exports = React.createClass({ displayName: 'RoomAvatar', @@ -134,12 +135,7 @@ module.exports = React.createClass({ }, getFallbackAvatar: function() { - var images = [ '76cfa6', '50e2c2', 'f4c371' ]; - var total = 0; - for (var i = 0; i < this.props.room.roomId.length; ++i) { - total += this.props.room.roomId.charCodeAt(i); - } - return 'img/' + images[total % images.length] + '.png'; + return Avatar.defaultAvatarUrlForString(this.props.room.roomId); }, render: function() {