51 lines
1.7 KiB
JavaScript
51 lines
1.7 KiB
JavaScript
/**
|
|
* @copyright 2022, the Converse.js contributors
|
|
* @license Mozilla Public License (MPLv2)
|
|
*/
|
|
import "../emoji/index.js";
|
|
import ChatBoxes from './chatboxes.js';
|
|
import chatboxes_api from './api.js';
|
|
import { _converse, api, converse } from "../../core.js";
|
|
|
|
const { Strophe } = converse.env;
|
|
|
|
|
|
converse.plugins.add('converse-chatboxes', {
|
|
|
|
dependencies: ["converse-emoji", "converse-roster", "converse-vcard"],
|
|
|
|
initialize () {
|
|
|
|
api.promises.add([
|
|
'chatBoxesFetched',
|
|
'chatBoxesInitialized',
|
|
'privateChatsAutoJoined'
|
|
]);
|
|
|
|
Object.assign(api, { 'chatboxes': chatboxes_api});
|
|
|
|
_converse.ChatBoxes = ChatBoxes;
|
|
|
|
|
|
api.listen.on('addClientFeatures', () => {
|
|
api.disco.own.features.add(Strophe.NS.MESSAGE_CORRECT);
|
|
api.disco.own.features.add(Strophe.NS.HTTPUPLOAD);
|
|
api.disco.own.features.add(Strophe.NS.OUTOFBAND);
|
|
});
|
|
|
|
api.listen.on('pluginsInitialized', () => {
|
|
_converse.chatboxes = new _converse.ChatBoxes();
|
|
/**
|
|
* Triggered once the _converse.ChatBoxes collection has been initialized.
|
|
* @event _converse#chatBoxesInitialized
|
|
* @example _converse.api.listen.on('chatBoxesInitialized', () => { ... });
|
|
* @example _converse.api.waitUntil('chatBoxesInitialized').then(() => { ... });
|
|
*/
|
|
api.trigger('chatBoxesInitialized');
|
|
});
|
|
|
|
api.listen.on('presencesInitialized', (reconnecting) => _converse.chatboxes.onConnected(reconnecting));
|
|
api.listen.on('reconnected', () => _converse.chatboxes.forEach(m => m.onReconnection()));
|
|
}
|
|
});
|