From 4c804fcf2db0e2b42a9ff0a934123e4b3f0f6892 Mon Sep 17 00:00:00 2001 From: JC Brand Date: Wed, 28 Apr 2021 12:05:40 +0200 Subject: [PATCH] Wait on `chatBoxesFetched` in API Otherwise we can run into race conditions when using IndexedDB with mergebounce --- src/headless/plugins/chat/api.js | 2 ++ src/headless/plugins/muc/api.js | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/headless/plugins/chat/api.js b/src/headless/plugins/chat/api.js index 9e3d0b985..c75782f2d 100644 --- a/src/headless/plugins/chat/api.js +++ b/src/headless/plugins/chat/api.js @@ -120,6 +120,8 @@ export default { * */ async get (jids, attrs={}, create=false) { + await api.waitUntil('chatBoxesFetched'); + async function _get (jid) { let model = await api.chatboxes.get(jid); if (!model && create) { diff --git a/src/headless/plugins/muc/api.js b/src/headless/plugins/muc/api.js index 7ce2b587b..4685c59f6 100644 --- a/src/headless/plugins/muc/api.js +++ b/src/headless/plugins/muc/api.js @@ -137,6 +137,8 @@ export default { * }); */ async get (jids, attrs = {}, create = false) { + await api.waitUntil('chatBoxesFetched'); + async function _get (jid) { jid = u.getJIDFromURI(jid); let model = await api.chatboxes.get(jid);