diff options
Diffstat (limited to 'ui/routes/(app)')
| -rw-r--r-- | ui/routes/(app)/+layout.svelte | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/ui/routes/(app)/+layout.svelte b/ui/routes/(app)/+layout.svelte index a4ae442..90fa82e 100644 --- a/ui/routes/(app)/+layout.svelte +++ b/ui/routes/(app)/+layout.svelte @@ -29,11 +29,13 @@ function enrichChannels(channels, channelsMeta, messages) { const enrichedChannels = []; for (const ch of channels.values()) { + const createdAt = ch.at; const channelMessages = messages.filter((message) => message.channel === ch.id); - const lastMessage = channelMessages.slice(-1)[0]; - const lastMessageAt = lastMessage?.at; + const sentAt = channelMessages.map((message) => message.at); + const lastEventAt = Math.max(createdAt, ...sentAt); + const lastReadAt = channelsMeta.get(ch.id)?.lastReadAt; - const hasUnreads = lastReadAt === undefined || lastMessageAt > lastReadAt; + const hasUnreads = lastReadAt === undefined || lastEventAt > lastReadAt; enrichedChannels.push({ ...ch, hasUnreads |
