Avatar.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import React from "react";
  2. import { connect } from "react-redux";
  3. import { backURL } from "../constants";
  4. function getUrl(obj) {
  5. if (obj.avatar?.url) {
  6. return backURL + obj.avatar?.url;
  7. } else {
  8. return false;
  9. }
  10. }
  11. export const UserAvatar = ({ profile, text = "", className = "small" }) => {
  12. return (
  13. <>
  14. <div style={{display: "flex", alignItems: 'center'}}>
  15. <img className={className} src={getUrl(profile)} />
  16. <p>{text}</p>
  17. </div>
  18. </>
  19. );
  20. };
  21. export const CMyAvatar = connect((state) => ({
  22. profile: state.promise.myProfile?.payload || {},
  23. }))(UserAvatar);
  24. export const ChatAvatar = ({ userChat, text = "", className = "small", _id }) => {
  25. return (
  26. <>
  27. <div style={{display: "flex", alignItems: 'center'}}>
  28. {userChat[_id]?.avatar?.url ? <img className={className} src={backURL + userChat[_id]?.avatar?.url} /> : <div className="avatarStubChat"></div>}
  29. <p>{text}</p>
  30. </div>
  31. </>
  32. )
  33. }
  34. export const CChatAvatar = connect((state) => ({
  35. userChat: state.chats || {},
  36. }))(ChatAvatar);
  37. const SearchAvatar = ({findUser, avatarUrl}) => {
  38. return(
  39. <div className="searchBlock">
  40. <img src={backURL + avatarUrl?.avatar?.url} className="smallForChat"/>
  41. </div>
  42. )
  43. }
  44. export const CSearchAvatar = connect((state) => ({findUser: state?.promise?.findUser?.payload}))(
  45. SearchAvatar
  46. )