waffle/frontend/src/components/pages/main/Messages.svelte

41 lines
1 KiB
Svelte
Raw Normal View History

<script>
import { messagesStoreProvider } from "../../../stores.js";
export let channelId;
$: messages = messagesStoreProvider.getStore(channelId);
const onScroll = (e) => {
const { scrollTop, offsetHeight, scrollHeight } = e.target;
if (scrollTop === 0) {
messages.loadOlderMessages();
}
if ((scrollTop + offsetHeight) >= scrollHeight) {
messages.setIsCollectingOldMessages(true);
} else {
messages.setIsCollectingOldMessages(false);
}
};
</script>
<style>
.messages-container {
padding: var(--space-sm);
height: 100%;
width: 100%;
flex-grow: 0;
overflow-y: auto;
background-color: var(--background-color-1);
}
</style>
<div class="messages-container" on:scroll={ onScroll }>
{#each $messages as message (message.id)}
<div>
<b>{ message.author_username }</b>
<span>{ message.content }</span>
</div>
{/each}
</div>