aboutsummaryrefslogtreecommitdiff
path: root/src/services/chat_service/chat_service.js
diff options
context:
space:
mode:
authoreugenijm <eugenijm@protonmail.com>2020-09-16 02:34:19 +0300
committereugenijm <eugenijm@protonmail.com>2020-09-16 09:21:24 +0300
commit8c4514013d5a53218830a82a6ac46f5969edd69b (patch)
tree88229715417d6e62246e79a1c3172a6417a9497f /src/services/chat_service/chat_service.js
parent679a1f5e1c0591bd1864b4ff5faa9233a0e53adc (diff)
Fix chat messages being missed when the streaming is disabled and the messages are sent by both participants simultaneously
Diffstat (limited to 'src/services/chat_service/chat_service.js')
-rw-r--r--src/services/chat_service/chat_service.js17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/services/chat_service/chat_service.js b/src/services/chat_service/chat_service.js
index b60a889b..95c69482 100644
--- a/src/services/chat_service/chat_service.js
+++ b/src/services/chat_service/chat_service.js
@@ -8,7 +8,7 @@ const empty = (chatId) => {
lastSeenTimestamp: 0,
chatId: chatId,
minId: undefined,
- lastMessage: undefined
+ maxId: undefined
}
}
@@ -18,7 +18,7 @@ const clear = (storage) => {
storage.newMessageCount = 0
storage.lastSeenTimestamp = 0
storage.minId = undefined
- storage.lastMessage = undefined
+ storage.maxId = undefined
}
const deleteMessage = (storage, messageId) => {
@@ -26,8 +26,9 @@ const deleteMessage = (storage, messageId) => {
storage.messages = storage.messages.filter(m => m.id !== messageId)
delete storage.idIndex[messageId]
- if (storage.lastMessage && (storage.lastMessage.id === messageId)) {
- storage.lastMessage = _.maxBy(storage.messages, 'id')
+ if (storage.maxId === messageId) {
+ const lastMessage = _.maxBy(storage.messages, 'id')
+ storage.maxId = lastMessage.id
}
if (storage.minId === messageId) {
@@ -36,7 +37,7 @@ const deleteMessage = (storage, messageId) => {
}
}
-const add = (storage, { messages: newMessages }) => {
+const add = (storage, { messages: newMessages, updateMaxId = true }) => {
if (!storage) { return }
for (let i = 0; i < newMessages.length; i++) {
const message = newMessages[i]
@@ -48,8 +49,10 @@ const add = (storage, { messages: newMessages }) => {
storage.minId = message.id
}
- if (!storage.lastMessage || message.id > storage.lastMessage.id) {
- storage.lastMessage = message
+ if (!storage.maxId || message.id > storage.maxId) {
+ if (updateMaxId) {
+ storage.maxId = message.id
+ }
}
if (!storage.idIndex[message.id]) {