|
|
|
@ -193,6 +193,15 @@ class Room extends ElemJS {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getHeroes() {
|
|
|
|
|
if (this.data.summary) {
|
|
|
|
|
return this.data.summary["m.heroes"]
|
|
|
|
|
} else {
|
|
|
|
|
const me = lsm.get("mx_user_id")
|
|
|
|
|
return this.data.state.events.filter(e => e.type === "m.room.member" && e.content.membership === "join" && e.state_key !== me).map(e => e.state_key)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getName() {
|
|
|
|
|
// if the room has a name
|
|
|
|
|
let name = this.data.state.events.find(e => e.type === "m.room.name")
|
|
|
|
@ -205,7 +214,7 @@ class Room extends ElemJS {
|
|
|
|
|
return canonicalAlias.content.alias
|
|
|
|
|
}
|
|
|
|
|
// if the room has no alias, use the names of its members ("heroes")
|
|
|
|
|
const users = this.data.summary["m.heroes"]
|
|
|
|
|
const users = this.getHeroes()
|
|
|
|
|
if (users && users.length) {
|
|
|
|
|
const usernames = users.map(mxid => this.getMemberName(mxid))
|
|
|
|
|
return usernames.join(", ")
|
|
|
|
@ -224,7 +233,7 @@ class Room extends ElemJS {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// if the room has no avatar set, use a member's avatar
|
|
|
|
|
const users = this.data.summary["m.heroes"]
|
|
|
|
|
const users = this.getHeroes()
|
|
|
|
|
if (users && users[0] && this.members.has(users[0])) {
|
|
|
|
|
// console.log(users[0], this.members.get(users[0]))
|
|
|
|
|
const userAvatar = this.members.get(users[0]).value().content.avatar_url
|
|
|
|
|