This commit is contained in:
parent
879c09f70b
commit
f802031848
2 changed files with 14 additions and 5 deletions
|
@ -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() {
|
getName() {
|
||||||
// if the room has a name
|
// if the room has a name
|
||||||
let name = this.data.state.events.find(e => e.type === "m.room.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
|
return canonicalAlias.content.alias
|
||||||
}
|
}
|
||||||
// if the room has no alias, use the names of its members ("heroes")
|
// 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) {
|
if (users && users.length) {
|
||||||
const usernames = users.map(mxid => this.getMemberName(mxid))
|
const usernames = users.map(mxid => this.getMemberName(mxid))
|
||||||
return usernames.join(", ")
|
return usernames.join(", ")
|
||||||
|
@ -224,7 +233,7 @@ class Room extends ElemJS {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// if the room has no avatar set, use a member's avatar
|
// 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])) {
|
if (users && users[0] && this.members.has(users[0])) {
|
||||||
// console.log(users[0], this.members.get(users[0]))
|
// console.log(users[0], this.members.get(users[0]))
|
||||||
const userAvatar = this.members.get(users[0]).value().content.avatar_url
|
const userAvatar = this.members.get(users[0]).value().content.avatar_url
|
||||||
|
|
|
@ -58,15 +58,15 @@ function manageSync(root) {
|
||||||
}
|
}
|
||||||
const room = store.rooms.get(id).value()
|
const room = store.rooms.get(id).value()
|
||||||
const timeline = room.timeline
|
const timeline = room.timeline
|
||||||
if (data.state) timeline.updateStateEvents(data.state.events)
|
if (data.state && data.state.events) timeline.updateStateEvents(data.state.events)
|
||||||
if (data.timeline) {
|
if (data.timeline && data.timeline.events) {
|
||||||
if (!timeline.from) timeline.from = data.timeline.prev_batch
|
if (!timeline.from) timeline.from = data.timeline.prev_batch
|
||||||
if (data.timeline.events.length) {
|
if (data.timeline.events.length) {
|
||||||
newEvents = true
|
newEvents = true
|
||||||
timeline.updateEvents(data.timeline.events)
|
timeline.updateEvents(data.timeline.events)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (data.ephemeral) timeline.updateEphemeral(data.ephemeral.events)
|
if (data.ephemeral && data.ephemeral.events) timeline.updateEphemeral(data.ephemeral.events)
|
||||||
if (data.unread_notifications) {
|
if (data.unread_notifications) {
|
||||||
timeline.updateNotificationCount(data.unread_notifications.notification_count)
|
timeline.updateNotificationCount(data.unread_notifications.notification_count)
|
||||||
notificationsChange = true
|
notificationsChange = true
|
||||||
|
|
Loading…
Reference in a new issue