import React, { useState, useEffect } from 'react' import { actionFullAllGetPostsSaga } from '../../actions/typeSaga/feedTypesSaga' import { actionAddCommentFeedTypeSaga } from '../../actions/typeSaga/commentTypesSaga' import { actionClearFeedPostsType } from '../../actions/types/feedTypes' import { Provider, connect } from 'react-redux' import { Divider } from 'antd' import { CPost } from '../onePost' import { Row, Col } from 'antd' import LinkToUser from '../../components/LinkToUser' import { Comments } from '../../components/comment/Comment' import AddComment from '../../components/comment/AddComment' import { MyCarousel } from '../../components/post/Carousel' import load from '../../materials/load.gif' import { actionFullOnePostSaga, actionAddFullCommentSaga, } from '../../actions/typeSaga/postTypesSaga' import { actionFindSubCommentTypeSaga, actionFindSubCommentFeedTypeSaga, } from '../../actions/typeSaga/postTypesSaga' import { CLikeFeed } from '../../components/like/Like' const MyPostFeed = ({ postsFeed = [], onPostsFeed, addComment, onClearFeed, postsFeedPromise, }) => { const [checkScroll, setScroll] = useState(true) useEffect(() => { if (checkScroll) { onPostsFeed() } setScroll(false) }, [checkScroll]) useEffect(() => { document.addEventListener('scroll', scrollHandler) return () => { document.removeEventListener('scroll', scrollHandler) onClearFeed() } }, []) useEffect(() => { document.addEventListener('scroll', scrollHandler) }, [postsFeed.length]) const scrollHandler = (e) => { if ( e.target.documentElement.scrollHeight - (e.target.documentElement.scrollTop + window.innerHeight) < 200 ) { setScroll(true) document.removeEventListener('scroll', scrollHandler) } } return (
{postsFeed?.length == 0 && (

You have no posts to feed!

Post and follow other users!

)} {(postsFeed || []).map( ({ _id, images, title, text, owner, comments, likes }) => (

Title: {title || ''}

Text: {text || ''}

Comments
), )}
{postsFeedPromise?.status == 'PENDING' && ( )}
) } const CCommentsForFeed = connect( (state) => ({ addSubComment: state.promise?.addSubComment, addComment: state.promise?.addComment?.payload, }), { findSubComment: actionFindSubCommentFeedTypeSaga, }, )(Comments) export const CPostForFeed = connect( (state) => ({ postsFeed: state.feed?.postsFeed || [], addComment: state.promise?.addComment?.payload, postsFeedPromise: state.promise?.postsFeed, }), { onPostsFeed: actionFullAllGetPostsSaga, onClearFeed: actionClearFeedPostsType, addComment: actionAddCommentFeedTypeSaga, }, )(MyPostFeed)