Compare commits
No commits in common. "20bacce0682cc4c31e8a8f655808d99b5d886c98" and "217a81575076f2647dd5afa65ea6ee99f65ec8f7" have entirely different histories.
20bacce068
...
217a815750
4 changed files with 28 additions and 58 deletions
|
@ -14,6 +14,7 @@ class MatrixEvent extends ElemJS {
|
||||||
// predicates
|
// predicates
|
||||||
|
|
||||||
canGroup() {
|
canGroup() {
|
||||||
|
//return this.data.type === "m.room.message"
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -51,4 +52,17 @@ class MatrixEvent extends ElemJS {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {MatrixEvent}
|
function simpleEvent(filter, render) {
|
||||||
|
return class extends MatrixEvent {
|
||||||
|
render() {
|
||||||
|
super.render()
|
||||||
|
return this.text(render(this.data))
|
||||||
|
}
|
||||||
|
|
||||||
|
static canRender(event) {
|
||||||
|
return filter(event)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {MatrixEvent, simpleEvent}
|
||||||
|
|
|
@ -1,47 +1,13 @@
|
||||||
const {MatrixEvent} = require("./event")
|
const {simpleEvent} = require("./event")
|
||||||
|
|
||||||
class MembershipEvent extends MatrixEvent {
|
const UnknownMembership = simpleEvent((e) => e.type == "m.room.member", (e) => "unknown membership event")
|
||||||
static canRender(event) {
|
|
||||||
return event.type == "m.room.member"
|
function createMembershipEvent(membership, message) {
|
||||||
}
|
return simpleEvent((e) => e.type == "m.room.member" && e.content.membership === membership, message)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const JoinedEvent = createMembershipEvent("join", (e) => "joined the room")
|
||||||
class JoinedEvent extends MembershipEvent {
|
const InvitedEvent = createMembershipEvent("invite", (e) => `invited ${e.content.displayname} the room`)
|
||||||
static canRender(event) {
|
const LeaveEvent = createMembershipEvent("leave", () => "left the room")
|
||||||
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]
|
module.exports = [JoinedEvent, InvitedEvent, LeaveEvent, UnknownMembership]
|
||||||
|
|
|
@ -24,8 +24,8 @@ purifier.addHook("uponSanitizeAttribute", (node, hookevent, config) => {
|
||||||
hookevent.keepAttr = allowed_attributes.indexOf(hookevent.attrName) > -1;
|
hookevent.keepAttr = allowed_attributes.indexOf(hookevent.attrName) > -1;
|
||||||
})
|
})
|
||||||
|
|
||||||
purifier.addHook("uponSanitizeElement", (node, hookevent, config) => {
|
|
||||||
//Remove bad classes from our code element
|
//Remove bad classes from our code element
|
||||||
|
purifier.addHook("uponSanitizeElement", (node, hookevent, config) => {
|
||||||
if (node.tagName == "CODE") {
|
if (node.tagName == "CODE") {
|
||||||
node.classList.forEach(c => {
|
node.classList.forEach(c => {
|
||||||
if (!c.startsWith("language-")) {
|
if (!c.startsWith("language-")) {
|
||||||
|
|
|
@ -1,13 +1,3 @@
|
||||||
const {MatrixEvent} = require("./event")
|
const {simpleEvent} = require("./event")
|
||||||
|
const UnknownEvent = simpleEvent(() => true, () => "Cannot render event")
|
||||||
class UnknownEvent extends MatrixEvent {
|
|
||||||
static canRender() {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
render() {
|
|
||||||
super.render()
|
|
||||||
return this.text(`cannot render event`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
module.exports = [UnknownEvent]
|
module.exports = [UnknownEvent]
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue