This commit is contained in:
2026-02-22 18:35:59 +03:00
parent fd54fa75bd
commit 25750fee51
21 changed files with 400 additions and 222 deletions

View File

@@ -5,29 +5,29 @@ import { useSharedWebSocket, WsDataType } from '../composables/useSharedWebSocke
const message = ref('')
const selectedChat = ref('')
const { messages, chats, isConnected, error, send } = useSharedWebSocket({
// const { messages, chats, isConnected, error, send } = useSharedWebSocket({
// onMessage: (data) => {
// console.log('Received message:', data)
// },
})
// })
const onChatClick = (id: string) => {
console.log(id)
selectedChat.value = id
send({
type: WsDataType.GET_MESSAGES,
data: { chat_id: id },
})
// send({
// type: WsDataType.GET_MESSAGES,
// data: { chat_id: id },
// })
}
const sendMessage = () => {
if (message.value.trim()) {
send({
type: WsDataType.CREATE_MESSAGE,
data: {
chat_id: selectedChat.value,
text: message.value,
},
// send({
// type: WsDataType.CREATE_MESSAGE,
// data: {
// chat_id: selectedChat.value,
// text: message.value,
// },
})
message.value = ''
}
@@ -37,29 +37,29 @@ const sendMessage = () => {
<template>
<v-row>
<v-col>
<div class="status" :class="{ isConnected, disconnected: !isConnected }">
status: {{ isConnected ? 'connected' : 'disconnected' }}
</div>
<!-- <div class="status" :class="{ isConnected, disconnected: !isConnected }">-->
<!-- status: {{ isConnected ? 'connected' : 'disconnected' }}-->
<!-- </div>-->
<div>selected chat {{ selectedChat }}</div>
<div class="error">Error: {{ error }}</div>
<!-- <div class="error">Error: {{ error }}</div>-->
</v-col>
</v-row>
<v-row>
<v-col>
<div>
<div v-for="chat in chats" :key="chat.id" @click="onChatClick(chat.id)">
<div>{{ chat.id }}</div>
<div>{{ chat.users }}</div>
</div>
<!-- <div v-for="chat in chats" :key="chat.id" @click="onChatClick(chat.id)">-->
<!-- <div>{{ chat.id }}</div>-->
<!-- <div>{{ chat.users }}</div>-->
<!-- </div>-->
</div>
</v-col>
<v-col>
<v-sheet border class="pa-4 border-opacity-50">
<div v-if="selectedChat">
<v-sheet height="400px" class="overflow-y-auto">
<div v-for="message in messages" :key="message.id">
<div>{{ message }}</div>
</div>
<!-- <div v-for="message in messages" :key="message.id">-->
<!-- <div>{{ message }}</div>-->
<!-- </div>-->
</v-sheet>
<div class="d-flex align-center ga-1">
@@ -72,13 +72,13 @@ const sendMessage = () => {
placeholder="Type message..."
>
</v-text-field>
<v-btn
:disabled="!isConnected"
variant="elevated"
color="primary"
icon="mdi-send"
@click="sendMessage"
/>
<!-- <v-btn-->
<!-- :disabled="!isConnected"-->
<!-- variant="elevated"-->
<!-- color="primary"-->
<!-- icon="mdi-send"-->
<!-- @click="sendMessage"-->
<!-- />-->
</div>
</div>
</v-sheet>