25 lines
626 B
JavaScript
25 lines
626 B
JavaScript
import { _converse, converse } from "../../core.js";
|
|
import log from "../../log";
|
|
|
|
const { Strophe } = converse.env;
|
|
|
|
|
|
export async function createChatBox (jid, attrs, Model) {
|
|
jid = Strophe.getBareJidFromJid(jid.toLowerCase());
|
|
Object.assign(attrs, {'jid': jid, 'id': jid});
|
|
let chatbox;
|
|
try {
|
|
chatbox = new Model(attrs, {'collection': _converse.chatboxes});
|
|
} catch (e) {
|
|
log.error(e);
|
|
return null;
|
|
}
|
|
await chatbox.initialized;
|
|
if (!chatbox.isValid()) {
|
|
chatbox.destroy();
|
|
return null;
|
|
}
|
|
_converse.chatboxes.add(chatbox);
|
|
return chatbox;
|
|
}
|