Like.jsx 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import { HeartOutlined, HeartFilled } from '@ant-design/icons'
  2. import {
  3. actionChangeLikeTypeSaga,
  4. actionChangeFeedLikeTypeSaga,
  5. } from '../../actions/typeSaga/likeTypesSaga'
  6. import { connect } from 'react-redux'
  7. import ModalLikes from './ModalLikes'
  8. export const Like = ({ my_Id, postId, likes = [], changeLike }) => {
  9. const likeId = likes.find((like) => like?.owner?._id === my_Id)?._id
  10. return (
  11. <>
  12. <div style={{ display: 'flex' }}>
  13. <h3 onClick={() => changeLike(likeId, postId)}>
  14. {likeId ? (
  15. <HeartFilled style={{ color: 'red' }} className="Like" />
  16. ) : (
  17. <HeartOutlined className="UnLike" />
  18. )}
  19. </h3>
  20. <ModalLikes likes={likes} myId={my_Id} />
  21. </div>
  22. </>
  23. )
  24. }
  25. const AllLikes = ({ my_Id, likes, changeLike, postId }) => (
  26. <Like my_Id={my_Id} likes={likes} postId={postId} changeLike={changeLike} />
  27. )
  28. export const CLike = connect(
  29. (state) => ({
  30. my_Id: state.auth?.payload?.sub?.id || '',
  31. }),
  32. {
  33. changeLike: actionChangeLikeTypeSaga,
  34. },
  35. )(AllLikes)
  36. export const CLikeFeed = connect(
  37. (state) => ({
  38. my_Id: state.auth?.payload?.sub?.id || '',
  39. }),
  40. {
  41. changeLike: actionChangeFeedLikeTypeSaga,
  42. },
  43. )(AllLikes)