Skip to content
Snippets Groups Projects
Commit 8e7d7327 authored by Emmanuel Vodor's avatar Emmanuel Vodor
Browse files

Merge branch '262_reply_to_message' into 'beta'

#262 Reply to message

See merge request !108
parents 8821dba2 1f90250c
No related branches found
No related tags found
2 merge requests!113History, Reply to messages and RAI,!108#262 Reply to message
Pipeline #10471 passed with stage
in 1 minute and 42 seconds
/**
* Add an action button to reply to a message.
* TODO: Add settings to handle this plugin
*/
converse.plugins.add('sib-reply-to-message', {
initialize() {
const _converse = this._converse;
const { api, __ } = _converse;
const { utils } = converse.env;
const { utils, _ } = converse.env;
function removeQuotedMessages(text) {
return text.replace(/^>.*(\n)?/gm, '');
}
api.listen.on('getMessageActionButtons', (el, buttons) => {
// Do not add if the message is not from a MUC
// Do not add if the message is from the current user
if (el.model.get('type') !== 'groupchat' || el.model.get('from_real_jid') === _converse.bare_jid) {
if (el.model.get('type') !== 'groupchat' || el.model.get('sender') === 'me') {
return buttons;
}
......@@ -19,7 +24,16 @@ converse.plugins.add('sib-reply-to-message', {
'i18n_text': __('Reply'),
'handler': ev => {
const chat_textarea = utils.ancestor(el, '.chatbox')?.querySelector('.chat-textarea');
chat_textarea.value = `@${el.model.get('nick')} `;
chat_textarea.value = '';
// Add the previous message without quoted messages (to avoid blockquotes into blockquotes)
const message = _.truncate(removeQuotedMessages(el.model.get('message')), { length: 100 });
if (message.length > 0) {
chat_textarea.value += `${message.replace(/^/gm, '>')}\n`;
}
// Add mention to the initial user and focus textarea
chat_textarea.value += `@${el.model.get('nick')} `;
chat_textarea.focus();
},
'button_class': 'chat-msg__action-reply',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment