You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
873 B
JavaScript
26 lines
873 B
JavaScript
import sdk from 'matrix-js-sdk'
|
|
import {matrix} from '@/main';
|
|
import parseMXC from '@modular-matrix/parse-mxc';
|
|
|
|
export function getMxcFromUser(user){
|
|
return user.avatarUrl;
|
|
}
|
|
|
|
export function getMxcFromUserId(userId){
|
|
return matrix.client.getUser(userId).avatarUrl;
|
|
}
|
|
|
|
export function getMxcFromRoom(room){
|
|
let avatarState = room.getLiveTimeline().getState(sdk.EventTimeline.FORWARDS).getStateEvents('m.room.avatar');
|
|
return avatarState.length>0?avatarState[avatarState.length-1].getContent().url:undefined;
|
|
}
|
|
|
|
export function getMxcFromRoomId(roomId){
|
|
return getMxcFromRoom(matrix.client.getRoom(roomId));
|
|
}
|
|
|
|
export function getAvatarUrl(mxcUrl, size = 64, resizeMethod = 'crop'){
|
|
let mxc = parseMXC.parse(mxcUrl);
|
|
return `${matrix.baseUrl}/_matrix/media/v1/thumbnail/${
|
|
mxc.homeserver}/${mxc.id}?width=${size}&height=${size}&method=${resizeMethod}`;
|
|
} |