UserMenu.jsx 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import { Avatar, Divider, Drawer, List } from '@mui/material';
  2. import { connect } from 'react-redux';
  3. import { backendURL } from '../../helpers/gql';
  4. import React from 'react';
  5. import { actionLogout } from '../../actions/actionLogin';
  6. import { ListItemWrap, StyledSpan, UserMenuHeader, UserMenuTitle } from './UserMenu.style';
  7. import ChatIcon from "./icons8-chat.png";
  8. import Exit from "../ChatInfoOptions/icons8_exit.png";
  9. import EditIcon from '@mui/icons-material/Edit';
  10. import { actionOpenModal } from '../../actions/actionsForModal';
  11. const UserMenu = ({open, setOpen, closeUserMenu, userInfo: {nick, avatar}, logout }) => {
  12. return (
  13. <Drawer
  14. anchor='left'
  15. open={open}
  16. onClose={closeUserMenu}
  17. >
  18. <div style={{width: "300px"}}>
  19. <UserMenuHeader>
  20. <Avatar
  21. src={`${backendURL}/${avatar?.url || ''}`}
  22. alt={nick}
  23. sx={{width: 60, height: 60}}
  24. />
  25. <UserMenuTitle>
  26. {nick}
  27. </UserMenuTitle>
  28. </UserMenuHeader>
  29. <Divider/>
  30. <List>
  31. <ListItemWrap onClick={() => {setOpen('chatCreatorModal'); closeUserMenu()}}>
  32. <img src={ChatIcon} alt="chatIcon" style={{height: "22px"}}/> <StyledSpan>New chat</StyledSpan>
  33. </ListItemWrap>
  34. <ListItemWrap onClick={() => {setOpen('userEditorModal'); closeUserMenu()}}>
  35. <EditIcon/> <StyledSpan>Edit profile</StyledSpan>
  36. </ListItemWrap>
  37. <ListItemWrap onClick={() => logout()}>
  38. <img src={Exit} alt="chatIcon" style={{height: "22px"}}/> <StyledSpan>Log out</StyledSpan>
  39. </ListItemWrap>
  40. </List>
  41. </div>
  42. </Drawer>
  43. )
  44. }
  45. export default connect(state => ({userInfo: state.promise?.aboutMe?.payload || {}}), {setOpen : actionOpenModal, logout: actionLogout})(UserMenu)