Message.jsx 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { useEffect, useRef, useState } from "react";
  2. import { Link } from "react-router-dom";
  3. import { backendURL } from "../../helpers/gql";
  4. import MessageOptions from "../MessageOptions/MessageOptions";
  5. import { ReplyMessage } from "../ReplyMessage/ReplyMessage";
  6. import { convert } from "../Time/Time";
  7. import { MessageContainer, MessageFooter, MessageOwner, MessageText, MessageWrapper, TimeMessage } from "./Message.style";
  8. import { saveAs } from "file-saver";
  9. import { MemoMessageMediaContainer, MessageMediaContainer } from "../MessageMediaContainer/MessageMediaContainer";
  10. import { ForwardedMessage } from "../ForwardedMessage/ForwardedMessage";
  11. export const Message = ({mes, chatId}) => {
  12. const owner = true;
  13. const [anchorEl, setAnchorEl] = useState(null);
  14. const open = Boolean(anchorEl);
  15. const handleClick = (event) => {
  16. setAnchorEl(event.currentTarget);
  17. };
  18. const handleClose = () => {
  19. setAnchorEl(null)
  20. };
  21. return (mes.forwarded ?
  22. <div>
  23. <MessageWrapper onClick={(e) => {handleClick(e)}}>
  24. <MessageContainer>
  25. <ForwardedMessage messsage={mes.forwarded}/>
  26. </MessageContainer>
  27. </MessageWrapper>
  28. <MessageOptions message={mes} chatId={chatId} handleClose={handleClose} open={open} anchorEl={anchorEl}/>
  29. </div>
  30. :
  31. <div>
  32. <MessageWrapper onClick={(e) => {handleClick(e)}}>
  33. <MessageContainer>
  34. {mes?.replyTo && <ReplyMessage owner={owner} message={mes.replyTo}/>}
  35. {mes?.media && mes?.media?.length !==0 && <MemoMessageMediaContainer media={mes.media}/>}
  36. <MessageText>{mes.text.replace(/ /g, "\u00a0")}</MessageText>
  37. <MessageFooter>
  38. <MessageOwner>{mes.owner.nick || 'nick'}</MessageOwner>
  39. <TimeMessage owner={owner}>{convert(mes.createdAt).getTime()}</TimeMessage>
  40. </MessageFooter>
  41. </MessageContainer>
  42. </MessageWrapper>
  43. <MessageOptions message={mes} chatId={chatId} handleClose={handleClose} open={open} anchorEl={anchorEl}/>
  44. </div>)
  45. }