Compare commits

...

2 commits

Author SHA1 Message Date
9fee630a68
fix: some messages not getting type correctly due to nextTick() use
All checks were successful
ci/woodpecker/push/build-and-publish Pipeline was successful
2025-06-01 16:23:42 +02:00
2c2013fa81
feat: update offset for fetching older messages 2025-06-01 16:22:51 +02:00

View file

@ -37,8 +37,7 @@ const messagesRes: MessageResponse[] | undefined = await fetchWithApi(
const firstMessageByUsers = ref<Record<string, MessageResponse | undefined>>({}); const firstMessageByUsers = ref<Record<string, MessageResponse | undefined>>({});
const previousMessage = ref<MessageResponse>(); const previousMessage = ref<MessageResponse>();
async function groupMessage(message: MessageResponse, options?: { prevMessage?: MessageResponse, reverse?: boolean }) { function groupMessage(message: MessageResponse, options?: { prevMessage?: MessageResponse, reverse?: boolean }) {
await nextTick();
messageTimestamps.value[message.uuid] = uuidToTimestamp(message.uuid); messageTimestamps.value[message.uuid] = uuidToTimestamp(message.uuid);
console.log("message:", message.message); console.log("message:", message.message);
console.log("author:", message.user.username, `(${message.user.uuid})`); console.log("author:", message.user.username, `(${message.user.uuid})`);
@ -138,7 +137,7 @@ if (accessToken && apiBase) {
console.log("message uuid:", event.data.uuid); console.log("message uuid:", event.data.uuid);
const parsedData = JSON.parse(event.data); const parsedData = JSON.parse(event.data);
await groupMessage(parsedData); groupMessage(parsedData);
console.log("parsed message type:", messagesType.value[parsedData.uuid]); console.log("parsed message type:", messagesType.value[parsedData.uuid]);
console.log("parsed message timestamp:", messageTimestamps.value[parsedData.uuid]); console.log("parsed message timestamp:", messageTimestamps.value[parsedData.uuid]);
messages.value.push(parsedData); messages.value.push(parsedData);
@ -171,6 +170,7 @@ onMounted(async () => {
if (messagesElement.value) { if (messagesElement.value) {
scrollToBottom(messagesElement); scrollToBottom(messagesElement);
let fetched = false; let fetched = false;
const amount = messages.value.length;
let offset = messages.value.length; let offset = messages.value.length;
messagesElement.value.addEventListener("scroll", async (e) => { messagesElement.value.addEventListener("scroll", async (e) => {
if (e.target) { if (e.target) {
@ -180,7 +180,7 @@ onMounted(async () => {
fetched = true; fetched = true;
console.log("scroll height is at 10% or less"); console.log("scroll height is at 10% or less");
//console.log("current oldest:", currentOldestMessage); //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) { if (olderMessages) {
olderMessages.reverse(); olderMessages.reverse();
console.log("older messages:", olderMessages); console.log("older messages:", olderMessages);
@ -189,10 +189,10 @@ onMounted(async () => {
console.log("old message:", oldMessage); console.log("old message:", oldMessage);
messages.value.unshift(oldMessage); messages.value.unshift(oldMessage);
for (const message of messages.value) { for (const message of messages.value) {
await groupMessage(message); groupMessage(message);
} }
} }
offset += 2; offset += offset;
} }
} else { } else {
fetched = false; fetched = false;