2020-10-29 10:31:08 +00:00
|
|
|
const {MatrixEvent} = require("./event")
|
2020-10-26 08:10:02 +00:00
|
|
|
|
2020-10-29 10:31:08 +00:00
|
|
|
class MembershipEvent extends MatrixEvent {
|
|
|
|
static canRender(event) {
|
|
|
|
return event.type == "m.room.member"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
class JoinedEvent extends MembershipEvent {
|
|
|
|
static canRender(event) {
|
|
|
|
return super.canRender(event) && event.content.membership === "join"
|
|
|
|
}
|
|
|
|
render() {
|
|
|
|
super.render()
|
|
|
|
return this.text("joined the room")
|
|
|
|
}
|
|
|
|
}
|
2020-10-26 21:55:27 +00:00
|
|
|
|
2020-10-29 10:31:08 +00:00
|
|
|
class InvitedEvent extends MembershipEvent {
|
|
|
|
static canRender(event) {
|
|
|
|
return super.canRender(event) && event.content.membership === "invite"
|
|
|
|
}
|
|
|
|
render() {
|
|
|
|
super.render()
|
|
|
|
return this.text(`invited ${this.data.content.displayname}`)
|
|
|
|
}
|
2020-10-26 21:55:27 +00:00
|
|
|
}
|
2020-10-26 08:10:02 +00:00
|
|
|
|
2020-10-29 10:31:08 +00:00
|
|
|
class LeaveEvent extends MembershipEvent {
|
|
|
|
static canRender(event) {
|
|
|
|
return super.canRender(event) && event.content.membership === "leave"
|
|
|
|
}
|
|
|
|
render() {
|
|
|
|
super.render()
|
|
|
|
return this.text(`left the room`)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
class UnknownMembership extends MembershipEvent {
|
|
|
|
render() {
|
|
|
|
super.render()
|
|
|
|
return this.text("unknown membership event")
|
|
|
|
}
|
|
|
|
}
|
2020-10-26 08:10:02 +00:00
|
|
|
|
2020-10-26 21:55:27 +00:00
|
|
|
module.exports = [JoinedEvent, InvitedEvent, LeaveEvent, UnknownMembership]
|