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 } from '../../../reducers/userDataReducer'; import { useState, useEffect } from 'react'; import { store } from '../../../store'; import { getSocket } from '../../../reducers/socketReducer'; 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|| 'http://localhost:5000/'; 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) 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 ? allUsers.map((item, key) =>
{item.userName}
{(user.userName === item.userName )? "admin" : <> }
{ userNamesOnlineSet.has(item.userName)? online : '' }
) : usersOnline.map((item, i) =>
{item.userName}
online
) } ) }