22 lines
622 B
JavaScript
22 lines
622 B
JavaScript
const {Event} = require("./event")
|
|
|
|
function createMembershipEvent(membership, text) {
|
|
return class extends Event {
|
|
render() {
|
|
super.render()
|
|
return this.text(text(this.data))
|
|
}
|
|
|
|
static canRender(event) {
|
|
return event.type == "m.room.member" && event.content.membership == membership
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
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]
|