|
2 | 2 | * @copyright 2024, the Converse.js contributors |
3 | 3 | * @license Mozilla Public License (MPLv2) |
4 | 4 | */ |
| 5 | +import { html } from 'lit'; |
5 | 6 | import { _converse, api, converse } from '@converse/headless'; |
6 | 7 | import './view.js'; |
7 | 8 | import ChatBoxViews from './container.js'; |
8 | 9 | import { calculateViewportHeightUnit } from './utils.js'; |
| 10 | +import '../rootview/index.js'; |
9 | 11 |
|
10 | 12 | import './styles/chats.scss'; |
11 | 13 |
|
12 | | - |
13 | 14 | converse.plugins.add('converse-chatboxviews', { |
14 | | - dependencies: ['converse-chatboxes', 'converse-vcard'], |
| 15 | + dependencies: ['converse-rootview', 'converse-chatboxes', 'converse-vcard'], |
15 | 16 |
|
16 | | - initialize () { |
| 17 | + initialize() { |
17 | 18 | api.promises.add(['chatBoxViewsInitialized']); |
18 | 19 |
|
19 | 20 | // Configuration values for this plugin |
20 | 21 | // ==================================== |
21 | 22 | // Refer to docs/source/configuration.rst for explanations of these |
22 | 23 | // configuration settings. |
23 | | - api.settings.extend({ 'animate': true }); |
| 24 | + api.settings.extend({ animate: true }); |
| 25 | + |
| 26 | + api.apps.add({ |
| 27 | + name: 'chat', |
| 28 | + render: () => { |
| 29 | + const extra_classes = api.settings.get('singleton') ? ['converse-singleton'] : []; |
| 30 | + extra_classes.push(`converse-${api.settings.get('view_mode')}`); |
| 31 | + return html`<converse-chats |
| 32 | + class="converse-chatboxes row justify-content-start g-0 ${extra_classes.join(' ')}" |
| 33 | + ></converse-chats>`; |
| 34 | + }, |
| 35 | + active: true, |
| 36 | + }); |
| 37 | + |
| 38 | + // TODO: move to own plugin |
| 39 | + api.apps.add({ |
| 40 | + name: 'todo', |
| 41 | + render: () => { |
| 42 | + return html`<p>hello world: todo</p>`; |
| 43 | + }, |
| 44 | + active: false, |
| 45 | + }); |
| 46 | + |
| 47 | + // TODO: move to own plugin |
| 48 | + api.apps.add({ |
| 49 | + name: 'timetracker', |
| 50 | + render: () => { |
| 51 | + return html`<p>hello world: timetracker</p>`; |
| 52 | + }, |
| 53 | + active: false, |
| 54 | + }); |
24 | 55 |
|
25 | 56 | const chatboxviews = new ChatBoxViews(); |
26 | 57 | Object.assign(_converse, { chatboxviews }); // XXX DEPRECATED |
@@ -53,14 +84,14 @@ converse.plugins.add('converse-chatboxviews', { |
53 | 84 | * @example |
54 | 85 | * converse.insertInto(document.querySelector('#converse-container')); |
55 | 86 | */ |
56 | | - insertInto (container) { |
| 87 | + insertInto(container) { |
57 | 88 | const el = chatboxviews.el; |
58 | 89 | if (el && !container.contains(el)) { |
59 | 90 | container.insertAdjacentElement('afterbegin', el); |
60 | 91 | } else if (!el) { |
61 | 92 | throw new Error('Cannot insert non-existing #conversejs element into the DOM'); |
62 | 93 | } |
63 | | - } |
| 94 | + }, |
64 | 95 | }); |
65 | | - } |
| 96 | + }, |
66 | 97 | }); |
0 commit comments