The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Rocket.Chat/packages/rocketchat-ui/client/lib/avatar.js

31 lines
968 B

Blaze.registerHelper('avatarUrlFromUsername', getAvatarUrlFromUsername);
this.getAvatarAsPng = function(username, cb) {
const image = new Image;
image.src = getAvatarUrlFromUsername(username);
image.onload = function() {
const canvas = document.createElement('canvas');
canvas.width = image.width;
canvas.height = image.height;
const context = canvas.getContext('2d');
context.drawImage(image, 0, 0);
return cb(canvas.toDataURL('image/png'));
};
return image.onerror = function() {
return cb('');
};
};
this.updateAvatarOfUsername = function(username) {
const key = `avatar_random_${ username }`;
Session.set(key, Math.round(Math.random() * 1000));
Object.keys(RoomManager.openedRooms).forEach((key) => {
const room = RoomManager.openedRooms[key];
const url = getAvatarUrlFromUsername(username);
$(room.dom).find(`.message[data-username='${ username }'] .avatar-image`).css('background-image', `url(${ url })`);
});
return true;
};