首先改造了聊天室的訊息系統。在 chat.ts 新增分享型訊息的欄位,讓 sendMessage 函數能夠識別傳入的內容類型。聊天室中的url已經可以直截點選。
重新整理了 ChatPage.vue 的傳送訊息邏輯:
為了讓使用者在任何頁面都能看到有新訊息,實作了 useChatThreads store。使用者登入時開始監聽 Firestore 的 thread 資料,即時計算個人的未讀訊息總數,在導航列和下拉選單都掛上 badge 提示。當切換會話或重新打開視窗時,就會把未讀數量歸零。
解決亂碼問題:
ChatPage 和 NavBar 重新改寫成乾淨的 UTF-8 編碼users.ts 增加 resolveDisplayName 函數,當使用者沒有設定名稱時會用 email 帳號或 uid 前六碼做 fallback