From e9763084f494f64ac0e3f1db8c44c88ac309d84c Mon Sep 17 00:00:00 2001 From: slawek Date: Sat, 11 Jan 2025 00:02:06 +0100 Subject: [PATCH] nie wiem co, cos zepsulem z nieprzeczytanymi wiadomosci i nie wiem jak naprawic --- .../components/chat/chatArea/MessagesArea.tsx | 19 ++++- .../chat/chatHeader/AddGroupMember.tsx | 2 +- .../chat/chatHeader/CreateGroupButton.tsx | 5 +- .../chat/leftSidebar/ContactsList.tsx | 16 +++++ client/src/context/chat/ChatProvider.tsx | 2 +- client/src/types/types.ts | 1 + server/db/db.js | 72 ++++++++++++------- server/server.js | 2 +- server/socket/socket.js | 10 +++ 9 files changed, 98 insertions(+), 31 deletions(-) diff --git a/client/src/components/chat/chatArea/MessagesArea.tsx b/client/src/components/chat/chatArea/MessagesArea.tsx index f83dd5b..d157296 100644 --- a/client/src/components/chat/chatArea/MessagesArea.tsx +++ b/client/src/components/chat/chatArea/MessagesArea.tsx @@ -27,7 +27,6 @@ function MessagesArea() { const previousMessagesLength = useRef(messages.length); const isFocused = useWindowFocus(); const previousTitle = useRef(document.title); - const scrollToBottom = () => { const container = containerRef.current; if (container && shouldScrollToBottom) { @@ -132,6 +131,7 @@ function MessagesArea() { last_message_id: msg.message_id, last_message_sender: msg.sender, last_message_time: new Date().toString(), + last_read_message_id: prevContacts[0]?.last_message_id || null, }, ]; } @@ -211,7 +211,7 @@ function MessagesArea() { const timeout = setTimeout(() => { setContactsList((prevContacts) => { return prevContacts.map((contact) => - contact.conversation_id === currentContact?.conversation_id + contact?.conversation_id === currentContact?.conversation_id ? { ...contact, read: true, @@ -224,6 +224,19 @@ function MessagesArea() { return () => clearTimeout(timeout); }, [isFocused]); + useEffect(() => { + if (!socket) return; + if (currentContact?.read == true) return; + socket.emit('message read', { + conversation_id: currentContact?.conversation_id, + message_id: messages[messages?.length - 1].message_id, + }); + console.info('MESSAGE READ: ', { + conversation_id: currentContact?.conversation_id, + message_id: messages[messages?.length - 1].message_id, + }); + }, [isFocused]); + useEffect(() => { const hasNewMessages = messages.length > previousMessagesLength.current; previousMessagesLength.current = messages.length; @@ -241,6 +254,8 @@ function MessagesArea() { return (
+

READ STATUS: {currentContact?.read ?

true

:

false

}

+

ISFOCUSED: {isFocused ?

tak

:

nie

}

{errorMessage}