824bf2ed30
Rename converse-core.js to core.js
48 lines
1.3 KiB
JavaScript
48 lines
1.3 KiB
JavaScript
import { CustomElement } from './element.js';
|
|
import tpl_trimmed_chat from "templates/trimmed_chat.js";
|
|
import { api, _converse } from "@converse/headless/core";
|
|
|
|
|
|
export default class MinimizedChat extends CustomElement {
|
|
|
|
static get properties () {
|
|
return {
|
|
model: { type: Object },
|
|
title: { type: String },
|
|
type: { type: String },
|
|
num_unread: { type: Number }
|
|
}
|
|
}
|
|
|
|
render () {
|
|
const data = {
|
|
'close': ev => this.close(ev),
|
|
'num_unread': this.num_unread,
|
|
'restore': ev => this.restore(ev),
|
|
'title': this.title,
|
|
'type': this.type
|
|
};
|
|
return tpl_trimmed_chat(data);
|
|
}
|
|
|
|
close (ev) {
|
|
ev?.preventDefault();
|
|
const view = _converse.chatboxviews.get(this.model.get('id'));
|
|
if (view) {
|
|
// This will call model.destroy(), removing it from the
|
|
// collection and will also emit 'chatBoxClosed'
|
|
view.close();
|
|
} else {
|
|
this.model.destroy();
|
|
api.trigger('chatBoxClosed', this);
|
|
}
|
|
}
|
|
|
|
restore (ev) {
|
|
ev?.preventDefault();
|
|
this.model.maximize();
|
|
}
|
|
}
|
|
|
|
api.elements.define('converse-minimized-chat', MinimizedChat);
|