From c166f1d186ab65c44ef77b84b96a91af97910722 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A5=D0=B0=D0=BB=D0=B8=D0=BC=D0=BE=D0=B2=20=D0=A0=D1=83?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D0=BC?= Date: Mon, 20 Apr 2026 23:14:31 +0300 Subject: [PATCH] Fix read receipts: join chat group when activeChat changes --- .../src/modules/chats/presentation/ChatPage.tsx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/client-web/src/modules/chats/presentation/ChatPage.tsx b/client-web/src/modules/chats/presentation/ChatPage.tsx index 28205cb..1d1ce7b 100644 --- a/client-web/src/modules/chats/presentation/ChatPage.tsx +++ b/client-web/src/modules/chats/presentation/ChatPage.tsx @@ -65,6 +65,8 @@ export default function ChatPage() { const [activeTab, setActiveTab] = useState('chats'); const { t } = useLang(); + const activeChat = useChatStore((state) => state.activeChat); + useEffect(() => { groupCallOpenRef.current = groupCallOpen; groupCallChatIdRef.current = groupCallChatId; @@ -335,6 +337,16 @@ export default function ChatPage() { }; }, [user?.id]); + // Join chat group when activeChat changes + useEffect(() => { + if (activeChat) { + const socket = getSocket(); + if (socket) { + socket.emit('join_chat', activeChat); + } + } + }, [activeChat]); + const handleStartCall = (targetUser: UserBasic, type: 'voice' | 'video') => { setCallTarget(targetUser); setCallType(type); @@ -371,8 +383,6 @@ export default function ChatPage() { setGroupCallOpen(false); }; - const activeChat = useChatStore((state) => state.activeChat); - return (