|
1 | 1 | import { _converse, api, converse, parsers } from '@converse/headless'; |
2 | 2 | import BaseModal from 'plugins/modal/modal.js'; |
3 | | -import tplAddTodo from './templates/add-todo-modal.js'; |
4 | 3 | import { __ } from 'i18n'; |
| 4 | +import tplAddTodo from './templates/add-todo-modal.js'; |
5 | 5 |
|
6 | 6 | const { Strophe } = converse.env; |
7 | 7 |
|
8 | 8 | export default class AddTodoModal extends BaseModal { |
| 9 | + |
| 10 | + static get properties() { |
| 11 | + return { |
| 12 | + ...super.properties, |
| 13 | + _manual_jid: { state: true, type: Boolean }, |
| 14 | + _entities: { state: true, type: Array }, |
| 15 | + }; |
| 16 | + } |
| 17 | + |
9 | 18 | initialize() { |
10 | 19 | super.initialize(); |
11 | 20 | this.requestUpdate(); |
@@ -36,19 +45,21 @@ export default class AddTodoModal extends BaseModal { |
36 | 45 | const name = data.get('name'); |
37 | 46 | const jid = data.get('jid') ?? _converse.state.session.get('domain'); |
38 | 47 |
|
39 | | - const service_jids = await api.disco.entities.find(Strophe.NS.PUBSUB, jid); |
40 | | - if (service_jids.length === 0) { |
| 48 | + const entities = await api.disco.entities.find(Strophe.NS.PUBSUB, jid); |
| 49 | + if (entities.length === 0) { |
41 | 50 | this.alert(__('Could not find a PubSub service to host your todo list'), 'danger'); |
42 | | - this.state.set({ manual_jid: true }); |
| 51 | + this._manual_jid = true; |
43 | 52 | return; |
44 | | - } else if (service_jids.length > 1) { |
| 53 | + } else if (entities.length > 1) { |
45 | 54 | this.alert(__('Found multiple possible PubSub services to host your todo list, please choose one.')); |
46 | | - this.state.set({ services: service_jids, manual_jid: true }); |
| 55 | + |
| 56 | + this._entities = entities; |
| 57 | + this._manual_jid = true; |
47 | 58 | return; |
48 | 59 | } |
49 | 60 |
|
50 | 61 | try { |
51 | | - await api.pubsub.create(service_jids[0].get('jid'), name); |
| 62 | + await api.pubsub.create(entities[0].get('jid'), name); |
52 | 63 | } catch (e) { |
53 | 64 | const err = await parsers.parseErrorStanza(e); |
54 | 65 | this.alert(__('Sorry, an error occurred: %s', err.message), 'danger'); |
|
0 commit comments