Profile.js 1.5 KB

12345678910111213141516171819202122232425262728293031
  1. import React, { useEffect } from "react";
  2. import { Container } from "react-bootstrap";
  3. import { connect } from "react-redux";
  4. import { actionMyPosts } from "../actions";
  5. import CDrop from "./DropZone";
  6. import CPromiseComponent from "./PromiseComponent";
  7. import { MyFeed } from "./MyPosts";
  8. import unknown from '../images/unknown.jpg'
  9. const Profile = ({ userData, postsData, getPosts }) => {
  10. useEffect(() => getPosts(), [])
  11. return (
  12. <CPromiseComponent promiseName='MyPosts'>
  13. <Container>
  14. <div className='d-flex flex-column justify-content-center align-items-center profile'>
  15. <img src={userData?.avatar ? userData?.avatar.url : unknown} />
  16. <CDrop />
  17. <h4>{userData?.login}</h4>
  18. </div>
  19. <div>
  20. <h4>Ваши объявления:</h4>
  21. {postsData && Object.keys(postsData).length == 0 && <h6>У вас еще нет обьявлений</h6>}
  22. {postsData?.map(ad => <MyFeed key={ad._id} _id = {ad. _id} price = {ad.price} title = {ad.title} description={ad.description} owner={ad.owner} images={ad.images} comments={ad.comments} />) }
  23. </div>
  24. </Container>
  25. </CPromiseComponent>
  26. )
  27. }
  28. const CProfile = connect(state => ({ userData: state.promiseReducer.UserInfo?.payload?.data?.UserFindOne , postsData: state.promiseReducer.MyPosts?.payload?.data?.AdFind }),{getPosts: actionMyPosts})(Profile)
  29. export default CProfile