const {ElemJS, ejs} = require("../basic") const {dateFormatter} = require("../date-formatter") class MatrixEvent extends ElemJS { constructor(data) { super("div") this.class("c-message") this.data = null this.group = null this.editedAt = null this.update(data) } // predicates canGroup() { return false } // operations setGroup(group) { this.group = group } setEdited(time) { this.editedAt = time this.render() } update(data) { this.data = data this.render() } removeEvent() { if (this.group) this.group.removeEvent(this) else this.remove() } render() { this.element.classList[this.data.pending ? "add" : "remove"]("c-message--pending") if (this.editedAt) { this.child(ejs("span").class("c-message__edited").text("(edited)").attribute("title", "at " + dateFormatter.format(this.editedAt))) } return this } static canRender(_event) { return false } } module.exports = {MatrixEvent}