From e8b6d03ff0afc6210a2a27aafca56af74e817cc2 Mon Sep 17 00:00:00 2001 From: ubermanu <e.vodor@gmail.com> Date: Mon, 22 Mar 2021 14:46:53 +0100 Subject: [PATCH 1/2] bugfix: send displayed marker for the latest message when scrolled down --- src/plugins/converse-rai.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/plugins/converse-rai.js b/src/plugins/converse-rai.js index 408feb2..c9dceb5 100644 --- a/src/plugins/converse-rai.js +++ b/src/plugins/converse-rai.js @@ -146,6 +146,16 @@ converse.plugins.add('converse-rai', { }, }); + /** + * Send a displayed marker once the chatroom is scrolled down. + * FIXME: This is sending two requests (for the same message) + */ + api.listen.on('chatBoxScrolledDown', data => { + if (data.chatbox.get('type') === _converse.CHATROOMS_TYPE && api.settings.get('muc_subscribe_to_rai')) { + data.chatbox.sendMarkerForLastMessage('displayed', true); + } + }); + /** * Triggers an event if a jid has activity. * -- GitLab From 2866ac6ff1f4e0228df1d64f33f3b4cc81083143 Mon Sep 17 00:00:00 2001 From: ubermanu <e.vodor@gmail.com> Date: Mon, 22 Mar 2021 16:35:20 +0100 Subject: [PATCH 2/2] bugfix: the markers should contain the stanza_id of the msg --- src/plugins/converse-rai.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/plugins/converse-rai.js b/src/plugins/converse-rai.js index c9dceb5..15db44f 100644 --- a/src/plugins/converse-rai.js +++ b/src/plugins/converse-rai.js @@ -96,10 +96,17 @@ converse.plugins.add('converse-rai', { * message, even if it didn't include a `markable` element. */ sendMarkerForMessage(msg, type = 'displayed', force = false) { + const _converse = this.__super__._converse; const { Strophe } = converse.env; - if (msg && (msg?.get('is_markable') || force)) { + + // Markers should be sent for message with a stanza_id + const is_groupchat = this.get('type') === _converse.CHATROOMS_TYPE; + const by_jid = is_groupchat ? this.get('jid') : _converse.bare_jid; + const stanza_id = msg.get('stanza_id '.concat(by_jid)); + + if (msg && (msg?.get('is_markable') || force) && stanza_id) { const from_jid = Strophe.getBareJidFromJid(msg.get('from')); - this.sendMarker(from_jid, msg.get('msgid'), type, msg.get('type')); + this.sendMarker(from_jid, stanza_id, type, msg.get('type')); } }, }, -- GitLab