|
@@ -3,7 +3,8 @@ import { privateMessage } from "../../../reducers/userDataReducer";
|
|
|
import { useSelector } from "react-redux";
|
|
|
import { StyledAvatar } from "../messageForm/StyledAvatar";
|
|
|
import { Avatar } from "@mui/material";
|
|
|
-import { useEffect,useState } from "react";
|
|
|
+import { useState, useEffect } from "react";
|
|
|
+import { useDispatch } from 'react-redux';
|
|
|
import {selectedUser} from "../../../reducers/dataReducers";
|
|
|
import {isNewPrivateMessages} from "../../../reducers/dataReducers";
|
|
|
|
|
@@ -36,7 +37,17 @@ useEffect(() => {
|
|
|
} , [newPrivateMessagesArray]);
|
|
|
|
|
|
|
|
|
+ const newPrivateMessages = useSelector(state => state.getUserSocketReducer.newPrivateMessages)
|
|
|
|
|
|
+ const [isPrivate, setIsPrivate] = useState(false)
|
|
|
+
|
|
|
+
|
|
|
+ useEffect(() => {
|
|
|
+ if(newPrivateMessages.text && newPrivateMessages?.sender[0].userName === item.userName){
|
|
|
+ setIsPrivate(!!newPrivateMessages.text)
|
|
|
+ }
|
|
|
+ },[newPrivateMessages])
|
|
|
+
|
|
|
return (
|
|
|
<div
|
|
|
className={(item.socketId&&isPrivatChat&&(chatId === item.socketId))? 'online active' :'online' }
|
|
@@ -45,6 +56,7 @@ useEffect(() => {
|
|
|
store.dispatch(privateMessage({toUser: item}))
|
|
|
store.dispatch(isNewPrivateMessages(false))
|
|
|
setCounter(0)
|
|
|
+ setIsPrivate(false)
|
|
|
socket.emit('privat chat', {
|
|
|
user,
|
|
|
to: item.socketId,
|
|
@@ -53,13 +65,14 @@ useEffect(() => {
|
|
|
}
|
|
|
}
|
|
|
>
|
|
|
-
|
|
|
+ {isPrivate && item.userName && <span style={{color:'red'}} > new </span>}
|
|
|
<div style={{color: item.color}}>
|
|
|
<StyledAvatar key={i} sx={{ marginRight:2}}
|
|
|
anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}
|
|
|
variant = {userNamesOnlineSet.has(item.userName)? 'dot' : ''}
|
|
|
|
|
|
>
|
|
|
+
|
|
|
<Avatar
|
|
|
src= {SERVER_URL + '/'+ item?.avatar}
|
|
|
sx={{ alignSelf: 'flex-end'}}
|
|
@@ -68,12 +81,10 @@ useEffect(() => {
|
|
|
{item?.userName.slice(0, 1)}
|
|
|
</Avatar>
|
|
|
|
|
|
-
|
|
|
</StyledAvatar>
|
|
|
<span> {item.userName} </span>
|
|
|
{isNewPrivate && newPrivateMessagesArray.length > 0 && <span style={{color:'red',position: 'fixed' }} > {counter} </span>}
|
|
|
</div>
|
|
|
-
|
|
|
</div>
|
|
|
)
|
|
|
}
|