diff options
| author | Owen Jacobson <owen@grimoire.ca> | 2025-05-14 00:10:17 -0400 |
|---|---|---|
| committer | Owen Jacobson <owen@grimoire.ca> | 2025-05-14 00:10:17 -0400 |
| commit | 82cddbe9dd4cd2e231391d6b0c5355d78d88ce14 (patch) | |
| tree | 1bee603abac086ed7984bc91b68179c31aa5e327 /ui | |
| parent | c8bfcf0da05de75dc5c1da9c37cb9302e7268df1 (diff) | |
Consider when a channel was created as part of determining whether it has been read.
Diffstat (limited to 'ui')
| -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 |
