Commit affafc74 authored by JC Brand's avatar JC Brand

Bugfix. Make sure `_devices_promise` is a Promise

parent 1c38863b
...@@ -66192,21 +66192,26 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins ...@@ -66192,21 +66192,26 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins
fetchDevices() { fetchDevices() {
if (_.isUndefined(this._devices_promise)) { if (_.isUndefined(this._devices_promise)) {
const options = { this._devices_promise = new Promise(resolve => {
'success': c => this.onCachedDevicesFetched(c), this.devices.fetch({
'error': e => _converse.log(e, Strophe.LogLevel.ERROR) 'success': async collection => {
}; if (collection.length === 0) {
this._devices_promise = this.devices.fetch(options); const ids = await this.fetchDevicesFromServer();
} await this.publishCurrentDevice(ids);
}
return this._devices_promise; resolve();
}, },
'error': e => {
_converse.log(e, Strophe.LogLevel.ERROR);
async onCachedDevicesFetched(collection) { resolve();
if (collection.length === 0) { }
const ids = await this.fetchDevicesFromServer(); });
this.publishCurrentDevice(ids); });
} }
return this._devices_promise;
}, },
async publishCurrentDevice(device_ids) { async publishCurrentDevice(device_ids) {
...@@ -840,22 +840,25 @@ converse.plugins.add('converse-omemo', { ...@@ -840,22 +840,25 @@ converse.plugins.add('converse-omemo', {
fetchDevices () { fetchDevices () {
if (_.isUndefined(this._devices_promise)) { if (_.isUndefined(this._devices_promise)) {
const options = { this._devices_promise = new Promise(resolve => {
'success': c => this.onCachedDevicesFetched(c), this.devices.fetch({
'error': e => _converse.log(e, Strophe.LogLevel.ERROR) 'success': async collection => {
} if (collection.length === 0) {
this._devices_promise = this.devices.fetch(options); const ids = await this.fetchDevicesFromServer()
await this.publishCurrentDevice(ids);
}
resolve();
},
'error': e => {
_converse.log(e, Strophe.LogLevel.ERROR);
resolve();
}
});
});
} }
return this._devices_promise; return this._devices_promise;
}, },
async onCachedDevicesFetched (collection) {
if (collection.length === 0) {
const ids = await this.fetchDevicesFromServer()
this.publishCurrentDevice(ids);
}
},
async publishCurrentDevice (device_ids) { async publishCurrentDevice (device_ids) {
if (this.get('jid') !== _converse.bare_jid) { if (this.get('jid') !== _converse.bare_jid) {
// We only publish for ourselves. // We only publish for ourselves.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment