diff --git a/src/plugins/converse-rai.js b/src/plugins/converse-rai.js index 3b5fb22e17e9741874ded24f9440e2a1f4edf6c2..408feb2f85a49459b4d29b2b47b00a0d53dd916c 100644 --- a/src/plugins/converse-rai.js +++ b/src/plugins/converse-rai.js @@ -87,6 +87,21 @@ converse.plugins.add('converse-rai', { const msg = msgs.find(m => m.get('sender') === 'them' && (force || m.get('is_markable'))); msg && this.sendMarkerForMessage(msg, type, force); }, + + /** + * Given the passed in message object, send a XEP-0333 chat marker. + * @param { _converse.Message } msg + * @param { ('received'|'displayed'|'acknowledged') } [type='displayed'] + * @param { Boolean } force - Whether a marker should be sent for the + * message, even if it didn't include a `markable` element. + */ + sendMarkerForMessage(msg, type = 'displayed', force = false) { + const { Strophe } = converse.env; + if (msg && (msg?.get('is_markable') || force)) { + const from_jid = Strophe.getBareJidFromJid(msg.get('from')); + this.sendMarker(from_jid, msg.get('msgid'), type, msg.get('type')); + } + }, }, }, initialize() {