| author | Stephen Paul Weber
<singpolyma@singpolyma.net> 2024-11-03 04:03:02 UTC |
| committer | Stephen Paul Weber
<singpolyma@singpolyma.net> 2024-11-03 04:03:02 UTC |
| parent | 3117fbb396910bd40678272bd0a8d621aa8d4d67 |
| snikket/Client.hx | +1 | -1 |
| snikket/persistence/browser.js | +2 | -2 |
diff --git a/snikket/Client.hx b/snikket/Client.hx index 86c1840..ee9bfaa 100644 --- a/snikket/Client.hx +++ b/snikket/Client.hx @@ -1294,7 +1294,7 @@ class Client extends EventEmitter { })); case ReactionUpdateStanza(update): promises.push(new thenshim.Promise((resolve, reject) -> { - persistence.storeReaction(accountId(), update, (m)->{}); + persistence.storeReaction(accountId(), update, resolve); })); default: // ignore diff --git a/snikket/persistence/browser.js b/snikket/persistence/browser.js index a696646..c0901c2 100644 --- a/snikket/persistence/browser.js +++ b/snikket/persistence/browser.js @@ -340,11 +340,11 @@ const browser = (dbname, tokenize, stemmer) => { const store = tx.objectStore("messages"); return Promise.all([ promisifyRequest(store.index("localId").openCursor(IDBKeyRange.only([account, message.localId || [], message.chatId()]))), - promisifyRequest(tx.objectStore("reactions").openCursor(IDBKeyRange.only([account, message.chatId(), message.senderId(), message.localId]))) + promisifyRequest(tx.objectStore("reactions").openCursor(IDBKeyRange.only([account, message.chatId(), message.senderId(), message.localId || ""]))) ]).then(([result, reactionResult]) => { if (reactionResult?.value?.append && message.html().trim() == "") { this.getMessage(account, message.chatId(), reactionResult.value.serverId, reactionResult.value.localId, (reactToMessage) => { - const reactions = Array.from(reactToMessage.reactions.keys()).filter((r) => !reactionResult.value.append.includes(r)); + const reactions = (reactToMessage ? Array.from(reactToMessage.reactions.keys()) : []).filter((r) => !reactionResult.value.append.includes(r)); this.storeReaction(account, new snikket.ReactionUpdate(message.localId, reactionResult.value.serverId, reactionResult.value.serverIdBy, reactionResult.value.localId, message.chatId(), message.timestamp, message.senderId(), reactions), callback); }); return true;