import {Button,Avatar} from '@mui/material'; import { useSelector } from 'react-redux'; import { banUser } from '../service/banUser'; import { muteUser } from '../service/muteUser'; import './userInfo.scss'; import { useDispatch } from 'react-redux'; import { getUserAvatar, privateMessage } from '../../../reducers/userDataReducer'; import { useState, useEffect } from 'react'; import { store } from '../../../store'; import { getSocket } from '../../../reducers/socketReducer'; import { StyledAvatar } from '../messageForm/StyledAvatar'; export const UserInfo = () => { const PC_AVATAR_STYLE = { bgcolor: 'grey', width: '100px', height: '100px', fontSize: 14, margin: '20px auto', cursor: 'pointer' }; const MOBILE_AVATAR_STYLE = { margin: '5px auto'}; const [displayType, setDisplayType] = useState('none'); const dispatch = useDispatch(); const loadAvatarHandler = () => { setDisplayType('block') setTimeout(() => { setDisplayType('none') }, 4000) } const SERVER_URL = process.env.REACT_APP_SERVER_URL const allUsers = useSelector(state => state.getUserSocketReducer.allUsers) const user = useSelector(state => state.getUserSocketReducer.socketUserData) const usersOnline = useSelector(state => state.getUserSocketReducer.usersOnline); const socket = useSelector(state => state.getUserSocketReducer.socket) const isTabletorMobile = (window.screen.width < 730); const storeUserAvatar = useSelector(state => state.userDataReducer.avatar) const isPrivatChat = useSelector(state => state.userDataReducer.isPrivatChat) const chatId = useSelector(state => state.userDataReducer.chatId) let userAvatarUrl = storeUserAvatar || user.avatar; const userNamesOnlineSet = new Set(usersOnline.map( i => i.userName)) const inputHandler = (e) => { const file = e.target.files[0] dispatch(getUserAvatar(file)) setDisplayType('none') } return ( <>

Hello, {user.userName}

loadAvatarHandler()} src={userAvatarUrl ? SERVER_URL +'/'+ userAvatarUrl : ""} > inputHandler(e)} /> {user.isAdmin && !isTabletorMobile ? allUsers.map((item, key) => (user.userName !== item.userName) &&
console.log(item._id)} > {/* {item?.userName.slice(0, 1)} */}
{item.userName}
{(user.userName === item.userName )? "admin" : <> }
{ userNamesOnlineSet.has(item.userName)? online : '' }
) : !isTabletorMobile && usersOnline.map((item, i) => (user.userName !== item.userName) &&
{ console.log(item.userName) store.dispatch(privateMessage(user._id)) socket.emit('private message', user ) } } >
{item?.userName.slice(0, 1)} {item.userName}
online
) } ) }