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>
|
<script lang="ts" setup>
|
||||||
import type { MessageResponse } from '~/types/interfaces';
|
import type { MessageResponse } from '~/types/interfaces';
|
||||||
import fetchUser from '~/utils/fetchUser';
|
import fetchUser from '~/utils/fetchUser';
|
||||||
|
import scrollToBottom from '~/utils/scrollToBottom';
|
||||||
|
|
||||||
const props = defineProps<{ channelUrl: string, amount?: number, offset?: number, reverse?: boolean }>();
|
const props = defineProps<{ channelUrl: string, amount?: number, offset?: number, reverse?: boolean }>();
|
||||||
|
|
||||||
|
@ -71,11 +72,16 @@ ws.addEventListener("open", (event) => {
|
||||||
console.log("WebSocket connected!");
|
console.log("WebSocket connected!");
|
||||||
});
|
});
|
||||||
|
|
||||||
ws.addEventListener("message", (event) => {
|
ws.addEventListener("message", async (event) => {
|
||||||
console.log("event data:", event.data);
|
console.log("event data:", event.data);
|
||||||
messages.value?.push(
|
messages.value?.push(
|
||||||
JSON.parse(event.data)
|
JSON.parse(event.data)
|
||||||
);
|
);
|
||||||
|
await nextTick();
|
||||||
|
if (messagesElement.value) {
|
||||||
|
console.log("scrolling to bottom");
|
||||||
|
scrollToBottom(messagesElement);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
await refresh();
|
await refresh();
|
||||||
|
@ -100,7 +106,9 @@ function sendMessage(e: Event) {
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
messagesElement.value?.scrollTo({ top: messagesElement.value.scrollHeight });
|
if (messagesElement.value) {
|
||||||
|
scrollToBottom(messagesElement);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue