const {MatrixEvent} = require("./event") const {ejs} = require("../basic") 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() } } class JoinedEvent extends MembershipEvent { static canRender(eventData) { return super.canRender(eventData) && eventData.content.membership === "join" } render() { this.renderText("joined the room") } } class InvitedEvent extends MembershipEvent { static canRender(eventData) { return super.canRender(eventData) && eventData.content.membership === "invite" } render() { this.renderText(`invited ${this.data.content.displayname}`) } } class LeaveEvent extends MembershipEvent { static canRender(eventData) { return super.canRender(eventData) && eventData.content.membership === "leave" } render() { this.renderText("left the room") } } class UnknownMembership extends MembershipEvent { render() { this.renderText("unknown membership event") } } module.exports = [JoinedEvent, InvitedEvent, LeaveEvent, UnknownMembership]