MessageOptions.jsx 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import { Menu, MenuItem } from '@mui/material';
  2. import List from '@mui/material/List';
  3. import ListItem from '@mui/material/ListItem';
  4. import ListItemButton from '@mui/material/ListItemButton';
  5. import ListItemIcon from '@mui/material/ListItemIcon';
  6. import ListItemText from '@mui/material/ListItemText';
  7. import ReplyIcon from "./icons8-reply.png";
  8. import ForwardIcon from "./icons8-forward.png";
  9. import { ImgIcon } from './MessageOptions.style';
  10. import EditIcon from '@mui/icons-material/Edit';
  11. import DeleteOutlineIcon from '@mui/icons-material/DeleteOutline';
  12. import { actionAddDraftMessage, actionSetMessageEditor } from '../../reducers/chatReducer';
  13. import { connect } from 'react-redux';
  14. import { actionModalDraft, actionOpenModal } from '../../reducers/modalReducer';
  15. import { actionEditMessage } from '../../actions/actionsMessages';
  16. const MessageOptions = ({userId, addDraftMessageEditor, handleClose, addMessageId, open, anchorEl, chatId, message, addDraftMessage, openModal}) => {
  17. const isOwner = userId === message.owner?._id;
  18. return(
  19. <Menu
  20. id="demo-positioned-menu"
  21. aria-labelledby="demo-positioned-button"
  22. anchorEl={anchorEl}
  23. open={open}
  24. onClose={handleClose}
  25. anchorOrigin={{
  26. vertical: 'bottom',
  27. horizontal: 'center',
  28. }}
  29. transformOrigin={{
  30. vertical: 'top',
  31. horizontal: 'center',
  32. }}
  33. >
  34. <MenuItem onClick={() => {handleClose(); addDraftMessage(chatId, message._id)}} disableRipple>
  35. <ImgIcon src={ReplyIcon} />
  36. Reply
  37. </MenuItem>
  38. {isOwner && <MenuItem onClick={() => {handleClose(); addDraftMessageEditor(chatId, message)}} disableRipple>
  39. <EditIcon style={{height: '18px', width: '18px', marginRight: '18px'}}/>
  40. Edit
  41. </MenuItem>}
  42. <MenuItem onClick={() => {addMessageId(message, 'forwardedMessage'); openModal('searchChatModal'); handleClose()}} disableRipple>
  43. <ImgIcon src={ForwardIcon} />
  44. Forward
  45. </MenuItem>
  46. <MenuItem onClick={() => {handleClose()}} disableRipple>
  47. <DeleteOutlineIcon style={{height: '18px', width: '18px', marginRight: '18px'}}/>
  48. Delete
  49. </MenuItem>
  50. </Menu>
  51. )
  52. }
  53. export default connect(state => ({userId: state?.auth?.payload?.sub?.id}), {addDraftMessage: actionAddDraftMessage, addDraftMessageEditor: actionEditMessage, openModal: actionOpenModal, addMessageId: actionModalDraft})(MessageOptions)