Carbon/src/js/events/membership.js

48 lines
1.0 KiB
JavaScript

const {MatrixEvent} = require("./event")
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")
}
}
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}`)
}
}
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")
}
}
module.exports = [JoinedEvent, InvitedEvent, LeaveEvent, UnknownMembership]