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]