From a356546fc706b2ade758e7f42069e6d669330421 Mon Sep 17 00:00:00 2001 From: Owen Jacobson Date: Wed, 30 Oct 2024 18:50:01 -0400 Subject: Coalesce adjacent messages by the same author into runs, to consolidate message display. --- ui/lib/components/ActiveChannel.svelte | 27 +++++++++++++++++++++++++-- ui/lib/components/Message.svelte | 21 +++++---------------- ui/lib/components/MessageRun.svelte | 20 ++++++++++++++++++++ ui/lib/store/messages.js | 3 --- 4 files changed, 50 insertions(+), 21 deletions(-) create mode 100644 ui/lib/components/MessageRun.svelte diff --git a/ui/lib/components/ActiveChannel.svelte b/ui/lib/components/ActiveChannel.svelte index ece9f55..1b23bc1 100644 --- a/ui/lib/components/ActiveChannel.svelte +++ b/ui/lib/components/ActiveChannel.svelte @@ -1,10 +1,33 @@
- {#each messageList as message} + {#each chunkBy(messageList, msg => msg.sender) as [sender, messages]}
- +
{/each}
diff --git a/ui/lib/components/Message.svelte b/ui/lib/components/Message.svelte index d040433..ef8ea0b 100644 --- a/ui/lib/components/Message.svelte +++ b/ui/lib/components/Message.svelte @@ -1,33 +1,22 @@ -
- - - @{name}: - +
{at} -
+
diff --git a/ui/lib/components/MessageRun.svelte b/ui/lib/components/MessageRun.svelte new file mode 100644 index 0000000..b998a8b --- /dev/null +++ b/ui/lib/components/MessageRun.svelte @@ -0,0 +1,20 @@ + + +
+ + + @{name}: + + {#each messages as { at, body }} + + {/each} +
diff --git a/ui/lib/store/messages.js b/ui/lib/store/messages.js index 931b8fb..7d1fbe1 100644 --- a/ui/lib/store/messages.js +++ b/ui/lib/store/messages.js @@ -17,9 +17,6 @@ export class Messages { for (let { channel, id, at, sender, body } of messages) { this.inChannel(channel).push({ id, at, sender, body, }); } - for (let channel in this.channels) { - this.channels[channel].sort((a, b) => a.at - b.at); - } return this; } -- cgit v1.2.3