feat: implement autoscroll
All checks were successful
ci/woodpecker/push/build-and-publish Pipeline was successful
All checks were successful
ci/woodpecker/push/build-and-publish Pipeline was successful
This commit is contained in:
parent
e0cc80230c
commit
b164abeda9
1 changed files with 10 additions and 2 deletions
|
@ -18,6 +18,7 @@
|
|||
<script lang="ts" setup>
|
||||
import type { MessageResponse } from '~/types/interfaces';
|
||||
import fetchUser from '~/utils/fetchUser';
|
||||
import scrollToBottom from '~/utils/scrollToBottom';
|
||||
|
||||
const props = defineProps<{ channelUrl: string, amount?: number, offset?: number, reverse?: boolean }>();
|
||||
|
||||
|
@ -71,11 +72,16 @@ ws.addEventListener("open", (event) => {
|
|||
console.log("WebSocket connected!");
|
||||
});
|
||||
|
||||
ws.addEventListener("message", (event) => {
|
||||
ws.addEventListener("message", async (event) => {
|
||||
console.log("event data:", event.data);
|
||||
messages.value?.push(
|
||||
JSON.parse(event.data)
|
||||
);
|
||||
await nextTick();
|
||||
if (messagesElement.value) {
|
||||
console.log("scrolling to bottom");
|
||||
scrollToBottom(messagesElement);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
await refresh();
|
||||
|
@ -100,7 +106,9 @@ function sendMessage(e: Event) {
|
|||
}
|
||||
|
||||
onMounted(async () => {
|
||||
messagesElement.value?.scrollTo({ top: messagesElement.value.scrollHeight });
|
||||
if (messagesElement.value) {
|
||||
scrollToBottom(messagesElement);
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue