diff options
| author | Shpuld Shpludson <shp@cock.li> | 2020-10-01 12:54:54 +0000 |
|---|---|---|
| committer | Shpuld Shpludson <shp@cock.li> | 2020-10-01 12:54:54 +0000 |
| commit | 8a34ff2957e28f7531c62c793ea4f24558e08ced (patch) | |
| tree | a631749e1fe647085d2ea328b5840b56b344b04e /src/services/chat_service/chat_service.js | |
| parent | fa9176651952468ee996abe0e67d62d9a72d5a69 (diff) | |
| parent | 68c2a5b18f887f3db2f5685953bc5175aaaabbd3 (diff) | |
Merge branch 'develop' into 'feat/masto-ws-deletes'
# Conflicts:
# CHANGELOG.md
# src/components/status/status.js
# src/components/status/status.scss
Diffstat (limited to 'src/services/chat_service/chat_service.js')
| -rw-r--r-- | src/services/chat_service/chat_service.js | 17 |
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]) { |
