From 2c2013fa814bb4c6e06c0218e4a7f0f90d7356fb Mon Sep 17 00:00:00 2001 From: SauceyRed Date: Sun, 1 Jun 2025 16:22:51 +0200 Subject: [PATCH 1/2] feat: update offset for fetching older messages --- components/MessageArea.vue | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/components/MessageArea.vue b/components/MessageArea.vue index 2f6aa97..22b1e61 100644 --- a/components/MessageArea.vue +++ b/components/MessageArea.vue @@ -171,6 +171,7 @@ onMounted(async () => { if (messagesElement.value) { scrollToBottom(messagesElement); let fetched = false; + const amount = messages.value.length; let offset = messages.value.length; messagesElement.value.addEventListener("scroll", async (e) => { if (e.target) { @@ -180,7 +181,7 @@ onMounted(async () => { fetched = true; console.log("scroll height is at 10% or less"); //console.log("current oldest:", currentOldestMessage); - const olderMessages = await fetchMessages(route.params.channelId as string, { amount: 2, offset: offset }); + const olderMessages = await fetchMessages(route.params.channelId as string, { amount, offset }); if (olderMessages) { olderMessages.reverse(); console.log("older messages:", olderMessages); @@ -192,7 +193,7 @@ onMounted(async () => { await groupMessage(message); } } - offset += 2; + offset += offset; } } else { fetched = false; From 9fee630a6806fbc330ccb852924cd6225f5d7216 Mon Sep 17 00:00:00 2001 From: SauceyRed Date: Sun, 1 Jun 2025 16:23:42 +0200 Subject: [PATCH 2/2] fix: some messages not getting type correctly due to nextTick() use --- components/MessageArea.vue | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/components/MessageArea.vue b/components/MessageArea.vue index 22b1e61..5ad027c 100644 --- a/components/MessageArea.vue +++ b/components/MessageArea.vue @@ -37,8 +37,7 @@ const messagesRes: MessageResponse[] | undefined = await fetchWithApi( const firstMessageByUsers = ref>({}); const previousMessage = ref(); -async function groupMessage(message: MessageResponse, options?: { prevMessage?: MessageResponse, reverse?: boolean }) { - await nextTick(); +function groupMessage(message: MessageResponse, options?: { prevMessage?: MessageResponse, reverse?: boolean }) { messageTimestamps.value[message.uuid] = uuidToTimestamp(message.uuid); console.log("message:", message.message); console.log("author:", message.user.username, `(${message.user.uuid})`); @@ -138,7 +137,7 @@ if (accessToken && apiBase) { console.log("message uuid:", event.data.uuid); const parsedData = JSON.parse(event.data); - await groupMessage(parsedData); + groupMessage(parsedData); console.log("parsed message type:", messagesType.value[parsedData.uuid]); console.log("parsed message timestamp:", messageTimestamps.value[parsedData.uuid]); messages.value.push(parsedData); @@ -190,7 +189,7 @@ onMounted(async () => { console.log("old message:", oldMessage); messages.value.unshift(oldMessage); for (const message of messages.value) { - await groupMessage(message); + groupMessage(message); } } offset += offset;