Carbon/src/js/events/membership.js

56 lines
1.1 KiB
JavaScript
Raw Normal View History

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