Profile.js 1.6 KB

123456789101112131415161718192021222324252627282930313233
  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='UserInfo'>
  13. <Container>
  14. <div className='d-flex flex-column justify-content-center align-items-center profile'>
  15. <h4>{userData?.login}</h4>
  16. <img src={userData?.avatar ? userData?.avatar.url : unknown} />
  17. <CDrop />
  18. </div>
  19. <div>
  20. <h4>Ваши объявления:</h4>
  21. <CPromiseComponent promiseName='MyPosts'>
  22. {postsData && Object.keys(postsData).length == 0 && <h6>У вас еще нет обьявлений</h6>}
  23. {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} />) }
  24. </CPromiseComponent>
  25. </div>
  26. </Container>
  27. </CPromiseComponent>
  28. )
  29. }
  30. const CProfile = connect(state => ({ userData: state.promiseReducer.UserInfo?.payload?.data?.UserFindOne , postsData: state.promiseReducer.MyPosts?.payload?.data?.AdFind }),{getPosts: actionMyPosts})(Profile)
  31. export default CProfile