feat: update WebSocket to handle new message format
All checks were successful
ci/woodpecker/push/build-and-publish Pipeline was successful
ci/woodpecker/pr/build-and-publish Pipeline was successful

This commit is contained in:
SauceyRed 2025-08-07 22:27:57 +02:00
parent b9dd9d3417
commit 6586890b6c
Signed by: sauceyred
GPG key ID: 270B096EF6E9A462

View file

@ -40,9 +40,10 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import type { MessageResponse, ScrollPosition, UserResponse } from '~/types/interfaces'; import type { MessageResponse, ScrollPosition, UserResponse, WSMessage } from '~/types/interfaces';
import scrollToBottom from '~/utils/scrollToBottom'; import scrollToBottom from '~/utils/scrollToBottom';
import { generateIrcColor } from '#imports'; import { generateIrcColor } from '#imports';
import { WSEvent } from '~/types/enums';
const { getDisplayName } = useProfile() const { getDisplayName } = useProfile()
const { fetchMe } = useApi() const { fetchMe } = useApi()
@ -195,16 +196,19 @@ if (accessToken && apiBase) {
ws.addEventListener("message", async (event) => { ws.addEventListener("message", async (event) => {
console.log("event data:", event.data); console.log("event data:", event.data);
console.log("message uuid:", event.data.uuid); console.log("message uuid:", event.data.uuid);
const parsedData = JSON.parse(event.data); const message: WSMessage = JSON.parse(event.data);
console.log("[MSG] parsed message:", parsedData); console.log("[MSG] parsed message:", message);
console.log("parsed message type:", messagesType.value[parsedData.uuid]); if (message.event == WSEvent.MessageSend) {
console.log("parsed message timestamp:", messageTimestamps.value[parsedData.uuid]); const messageObject = message.entity as MessageResponse;
pushMessage(parsedData); console.log("parsed message type:", messagesType.value[messageObject.uuid]);
await nextTick(); console.log("parsed message timestamp:", messageTimestamps.value[messageObject.uuid]);
if (messagesElement.value) { pushMessage(messageObject);
console.log("scrolling to bottom"); await nextTick();
scrollToBottom(messagesElement.value); if (messagesElement.value) {
console.log("scrolling to bottom");
scrollToBottom(messagesElement.value);
}
} }
}); });