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}