33 lines
861 B
JavaScript
33 lines
861 B
JavaScript
const {MatrixEvent} = require("./event")
|
|
|
|
function createMembershipEvent(membership, message) {
|
|
return class extends MatrixEvent {
|
|
render() {
|
|
super.render()
|
|
return this.text(message(this.data))
|
|
}
|
|
|
|
static canRender(event) {
|
|
return event.type == "m.room.member" && event.content.membership == membership
|
|
}
|
|
|
|
}
|
|
}
|
|
class UnknownMembership extends MatrixEvent {
|
|
render() {
|
|
super.render()
|
|
return this.text("Unsupported membership event")
|
|
}
|
|
|
|
static canRender(event) {
|
|
return event.type == "m.room.member"
|
|
}
|
|
|
|
}
|
|
|
|
const JoinedEvent = createMembershipEvent("join", () => "joined the room")
|
|
const InvitedEvent = createMembershipEvent("invite", (e) => `invited ${e.content.displayname} the room`)
|
|
const LeaveEvent = createMembershipEvent("leave", () => "left the room")
|
|
|
|
module.exports = [JoinedEvent, InvitedEvent, LeaveEvent, UnknownMembership]
|