From 3e375adcd6a4379f693abb87c4e8da427b600162 Mon Sep 17 00:00:00 2001 From: f0x Date: Fri, 3 May 2019 09:34:47 +0200 Subject: [PATCH] extending MatrixEvent --- components/chat.js | 27 +++++++++++++++++++++++---- components/input.js | 6 ++++-- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/components/chat.js b/components/chat.js index 86f725f..80c310c 100644 --- a/components/chat.js +++ b/components/chat.js @@ -6,6 +6,8 @@ const Promise = require('bluebird') const debounce = require('debounce') const jdenticon = require('jdenticon') const defaultValue = require('default-value') +const sdk = require('matrix-js-sdk') +const sanitize = require('sanitize-html') const Event = require('./events/Event.js') const Info = require('./info.js') @@ -24,6 +26,21 @@ jdenticon.config = { backColor: "#00000000" }; +sdk.MatrixEvent.prototype.plaintext = function() { + let event = this.event + let plain = "unknown event" + + if (event.type == "m.room.message") { + plain = event.content.body + + if (event.content.format == "org.matrix.custom.html") { + plain = sanitize(event.content.formatted_body, {allowedTags: []}) + } + } + + return plain +} + let chat = create({ displayName: "Chat", @@ -78,7 +95,8 @@ let chat = create({ let messageGroups = { current: [], groups: [], - sender: "" + sender: "", + type: "" } // if the sender is the same, add it to the 'current' messageGroup, if not, @@ -86,14 +104,15 @@ let chat = create({ let events = [] if (room.timeline.length > 0) { - room.timeline.forEach((timeline) => { - let event = timeline.event; + room.timeline.forEach((MatrixEvent) => { + let event = MatrixEvent.event; if (event.user_id != null) { // localecho messages event.sender = event.user_id event.local = true } - if (event.sender != messageGroups.sender) { + if (event.sender != messageGroups.sender || event.type != messageGroups.type) { messageGroups.sender = event.sender + messageGroups.type = event.type if (messageGroups.current.length != 0) { messageGroups.groups.push(messageGroups.current) } diff --git a/components/input.js b/components/input.js index ba3efc5..6bf718c 100644 --- a/components/input.js +++ b/components/input.js @@ -73,7 +73,9 @@ let input = create({ } content = this.sendReply(content) this.props.client.sendEvent(this.props.roomId, "m.room.message", content, (err, res) => { - console.log(err) + if (err != null) { + console.log(err) + } }) }, @@ -108,7 +110,7 @@ let input = create({ return
{this.props.replyEvent &&
- {this.props.replyEvent.content.body} + {this.props.replyEvent.plaintext()}
}