This commit is contained in:
2026-03-20 09:56:14 +03:00
parent bc704b03cd
commit 09028e0ced
10 changed files with 76 additions and 57 deletions

View File

@@ -10,6 +10,7 @@ export interface Chat {
name: string
users: User[]
message?: Message
image?: string
}
export const useChatsStore = defineStore('chats', () => {
@@ -18,6 +19,8 @@ export const useChatsStore = defineStore('chats', () => {
const selected = ref<string[]>([])
const selectedChat = computed(() => {
if (!selected.value.length) return
return chats.value.find((chat: Chat) => chat.id === selected.value[0])
})
@@ -35,5 +38,9 @@ export const useChatsStore = defineStore('chats', () => {
}
}
function getChatLastMessage(chat: Chat) {
return chats.value.find((el) => el.id === chat.id)
}
return { chats, selected, selectedChat, getChatInfo }
})

View File

@@ -1,5 +1,6 @@
import { defineStore } from 'pinia'
import { ref } from 'vue'
import { computed, ref } from 'vue'
import { useChatsStore } from '@/stores/chats.ts'
export interface Message {
id: number
@@ -9,7 +10,13 @@ export interface Message {
}
export const useMessagesStore = defineStore('messages', () => {
const chatsStore = useChatsStore()
const messages = ref<Message[]>([])
const message = ref<Message>()
return { messages }
const lastMessage = computed(() => {
return message.value ?? chatsStore.selectedChat?.message ?? null
})
return { messages, lastMessage }
})

View File

@@ -76,7 +76,6 @@ export const useSocketsStore = defineStore('sockets', () => {
const idx = chatsStore.chats.findIndex((chat) => chat.id === data.id)
if (idx < 0) chatsStore.chats.push(data)
console.log(data.id)
menuStore.selected = ['chats']
chatsStore.selected = [data.id]
}

View File

@@ -5,6 +5,7 @@ export interface User {
id: number
email: string
name: string
image?: string
}
export const useUsersStore = defineStore('users', () => {