summaryrefslogtreecommitdiff
path: root/ui/service-worker.js
diff options
context:
space:
mode:
Diffstat (limited to 'ui/service-worker.js')
-rw-r--r--ui/service-worker.js23
1 files changed, 18 insertions, 5 deletions
diff --git a/ui/service-worker.js b/ui/service-worker.js
index 67391f7..3a54d1e 100644
--- a/ui/service-worker.js
+++ b/ui/service-worker.js
@@ -18,9 +18,12 @@ const conversationReadStatus = {
};
function countUnreadChannels() {
- return Object.values(conversationReadStatus)
- .map(({ lastRead, lastMessage }) => {
- return !lastRead || lastRead < lastMessage ? 1 : 0;
+ console.debug(conversationReadStatus);
+ return Object.entries(conversationReadStatus)
+ .map(([conversationId, { lastRead, lastMessage }]) => {
+ const unread = (!lastRead || (lastRead < lastMessage)) ? 1 : 0;
+ if (unread) { console.debug(`Found unread in ${conversationId}`, lastRead, lastMessage); }
+ return unread;
})
.reduce((total, current) => total + current, 0);
}
@@ -37,8 +40,12 @@ self.addEventListener('push', (event) => {
const data = event.data?.json();
// Now we can do slower things that might fail:
- conversationReadStatus[data.conversationId] ||= { lastRead: null, lastMessage: null };
- conversationReadStatus[data.conversationId].lastMessage = new Date();
+ conversationReadStatus[data.conversation] ||= { lastRead: null, lastMessage: null };
+ conversationReadStatus[data.conversation].lastMessage = new Date();
+ console.debug(
+ `Last message in ${data.conversation}`,
+ conversationReadStatus[data.conversation].lastMessage,
+ );
event.waitUntil(
(async () => {
if (navigator.setAppBadge) {
@@ -55,10 +62,16 @@ self.addEventListener('message', (event) => {
case 'CONVERSATION_READ':
conversationReadStatus[data.conversationId] ||= { lastRead: null, lastMessage: null };
if (data.at) {
+ console.debug('Found data.at', new Date(data.at.ts));
conversationReadStatus[data.conversationId].lastRead = new Date(data.at.ts);
} else {
+ console.debug('Found no data.at');
conversationReadStatus[data.conversationId].lastRead = new Date();
}
+ console.debug(
+ `Last read in ${data.conversationId}`,
+ conversationReadStatus[data.conversationId].lastRead,
+ );
event.waitUntil(
(async () => {
if (navigator.setAppBadge) {