diff options
| author | Kit La Touche <kit@transneptune.net> | 2024-10-03 23:30:10 -0400 |
|---|---|---|
| committer | Kit La Touche <kit@transneptune.net> | 2024-10-03 23:30:10 -0400 |
| commit | 30c13478d61065a512f5bc8824fecbf2ee6afc81 (patch) | |
| tree | 5b9f0fe65458f6d19f7f0b3fed9c8d3e4676a175 /hi-ui/src/lib/ActiveChannel.svelte | |
| parent | 01d995c731c296292cd3f1f9a4702eb96a0bf628 (diff) | |
Handle basics of interface scrolling
Diffstat (limited to 'hi-ui/src/lib/ActiveChannel.svelte')
| -rw-r--r-- | hi-ui/src/lib/ActiveChannel.svelte | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/hi-ui/src/lib/ActiveChannel.svelte b/hi-ui/src/lib/ActiveChannel.svelte index 680a785..84f9119 100644 --- a/hi-ui/src/lib/ActiveChannel.svelte +++ b/hi-ui/src/lib/ActiveChannel.svelte @@ -1,28 +1,33 @@ <script> import { activeChannel, events } from '../store'; + import Message from './Message.svelte'; - let channel; - let allMessages = []; - $: messages = allMessages.filter( - (ev) => ev.type === 'message' && channel !== null && ev.channel.id === channel.id + let container; + $: messages = $events.filter( + (ev) => ( + ev.type === 'message' + && $activeChannel !== null + && ev.channel.id === $activeChannel.id + ) ); - activeChannel.subscribe((value) => { - channel = value; - }); + // TODO: eventually, store scroll height/last unread in channel? scroll there? - events.subscribe((value) => { - allMessages = value; - }); + let scroll = (message) => { + message.scrollIntoView(); + } </script> -<div> +<div class="container" bind:this={container}> {#each messages as message} - <div> - <pre><tt>{message.at} @{message.sender.name}: {message.message.body}</tt></pre> + <div use:scroll> + <Message {...message} /> </div> {/each} </div> <style> + .container { + overflow: scroll; + } </style> |
