Skip to content
Snippets Groups Projects

Custom Emoji Drawer & Inline Message Actions

Merged Emmanuel Vodor requested to merge beta into master
Files
2
@@ -87,6 +87,28 @@ 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 _converse = this.__super__._converse;
const { Strophe } = converse.env;
// 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, stanza_id, type, msg.get('type'));
}
},
},
},
initialize() {
@@ -131,6 +153,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.
*
Loading