From 5e8db7ed938021854cec8864462879f29d159eea Mon Sep 17 00:00:00 2001
From: Shpuld Shpuldson <shp@cock.li>
Date: Mon, 2 Nov 2020 09:15:13 +0200
Subject: [PATCH] move from using timestamps to ids when tracking last seen in
 chats

---
 src/services/chat_service/chat_service.js | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/services/chat_service/chat_service.js b/src/services/chat_service/chat_service.js
index b0905dc1..1fc4e390 100644
--- a/src/services/chat_service/chat_service.js
+++ b/src/services/chat_service/chat_service.js
@@ -6,7 +6,7 @@ const empty = (chatId) => {
     idempotencyKeyIndex: {},
     messages: [],
     newMessageCount: 0,
-    lastSeenTimestamp: 0,
+    lastSeenMessageId: '0',
     chatId: chatId,
     minId: undefined,
     maxId: undefined
@@ -27,7 +27,7 @@ const clear = (storage) => {
 
   storage.messages = storage.messages.filter(m => failedMessageIds.includes(m.id))
   storage.newMessageCount = 0
-  storage.lastSeenTimestamp = 0
+  storage.lastSeenMessageId = '0'
   storage.minId = 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.lastSeenTimestamp < message.created_at) {
+      if (storage.lastSeenMessageId < message.id) {
         storage.newMessageCount++
       }
       storage.idIndex[message.id] = message
@@ -122,7 +122,7 @@ const isConfirmation = (storage, message) => {
 const resetNewMessageCount = (storage) => {
   if (!storage) { return }
   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