forked from AkkomaGang/akkoma-fe
Merge branch 'fix/use-ids-for-chat-last-seen' into 'develop'
Fix: Use ids for chat last seen instead of timestamp See merge request pleroma/pleroma-fe!1270
This commit is contained in:
commit
bcb6ee328f
2 changed files with 7 additions and 7 deletions
|
@ -6,7 +6,7 @@ const empty = (chatId) => {
|
||||||
idempotencyKeyIndex: {},
|
idempotencyKeyIndex: {},
|
||||||
messages: [],
|
messages: [],
|
||||||
newMessageCount: 0,
|
newMessageCount: 0,
|
||||||
lastSeenTimestamp: 0,
|
lastSeenMessageId: '0',
|
||||||
chatId: chatId,
|
chatId: chatId,
|
||||||
minId: undefined,
|
minId: undefined,
|
||||||
maxId: undefined
|
maxId: undefined
|
||||||
|
@ -27,7 +27,7 @@ const clear = (storage) => {
|
||||||
|
|
||||||
storage.messages = storage.messages.filter(m => failedMessageIds.includes(m.id))
|
storage.messages = storage.messages.filter(m => failedMessageIds.includes(m.id))
|
||||||
storage.newMessageCount = 0
|
storage.newMessageCount = 0
|
||||||
storage.lastSeenTimestamp = 0
|
storage.lastSeenMessageId = '0'
|
||||||
storage.minId = undefined
|
storage.minId = undefined
|
||||||
storage.maxId = undefined
|
storage.maxId = undefined
|
||||||
}
|
}
|
||||||
|
@ -104,7 +104,7 @@ const add = (storage, { messages: newMessages, updateMaxId = true }) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!storage.idIndex[message.id] && !isConfirmation(storage, message)) {
|
if (!storage.idIndex[message.id] && !isConfirmation(storage, message)) {
|
||||||
if (storage.lastSeenTimestamp < message.created_at) {
|
if (storage.lastSeenMessageId < message.id) {
|
||||||
storage.newMessageCount++
|
storage.newMessageCount++
|
||||||
}
|
}
|
||||||
storage.idIndex[message.id] = message
|
storage.idIndex[message.id] = message
|
||||||
|
@ -122,7 +122,7 @@ const isConfirmation = (storage, message) => {
|
||||||
const resetNewMessageCount = (storage) => {
|
const resetNewMessageCount = (storage) => {
|
||||||
if (!storage) { return }
|
if (!storage) { return }
|
||||||
storage.newMessageCount = 0
|
storage.newMessageCount = 0
|
||||||
storage.lastSeenTimestamp = new Date()
|
storage.lastSeenMessageId = storage.maxId
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inserts date separators and marks the head and tail if it's the chain of messages made by the same user
|
// Inserts date separators and marks the head and tail if it's the chain of messages made by the same user
|
||||||
|
|
|
@ -47,10 +47,10 @@ describe('chatService', () => {
|
||||||
|
|
||||||
chatService.resetNewMessageCount(chat)
|
chatService.resetNewMessageCount(chat)
|
||||||
expect(chat.newMessageCount).to.eql(0)
|
expect(chat.newMessageCount).to.eql(0)
|
||||||
|
expect(chat.lastSeenMessageId).to.eql(message2.id)
|
||||||
|
|
||||||
const createdAt = new Date()
|
// Add message with higher id
|
||||||
createdAt.setSeconds(createdAt.getSeconds() + 10)
|
chatService.add(chat, { messages: [ message3 ] })
|
||||||
chatService.add(chat, { messages: [ { message3, created_at: createdAt } ] })
|
|
||||||
expect(chat.newMessageCount).to.eql(1)
|
expect(chat.newMessageCount).to.eql(1)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in a new issue