import React, { useEffect, useState } from 'react'
import { Button, Card, Col, Row } from 'antd'
import postNoData from '../images/profile-post-no.jpeg'
import { connect } from 'react-redux'
import { Link } from 'react-router-dom'
import { actionFindFollowers, actionFindFollowing, actionProfilePageData, actionRemovePostsFeedAC, actionSubscribe, actionUnSubscribe } from '../actions'
import { backURL, CircularGalleryIcon } from '../helpers'
import { UserAvatar } from './Header'
import { CModalFollowers, CModalFollowing } from '../components/main/profilePage/ModalFollow'
import { DateCreated } from '../components/main/DateCreated'
import Text from 'antd/lib/typography/Text'
const ProfileFollow = ({ myID, userId, followers, onSubsuscribe, onUnSubsuscribe }) => {
const followCheck = followers.find(f => f._id === myID && true)
return (
{!!followCheck ?
:
}
)
}
const CProfileSetting = connect(state => ({
myID: state?.auth?.payload?.sub.id,
followers: state?.postsFeed?.userData?.followers || []
}), { onSubsuscribe: actionSubscribe, onUnSubsuscribe: actionUnSubscribe })(ProfileFollow)
const ProfilePageData = ({ data: { _id, avatar, login, nick, createdAt = '', followers, following }, count, setFollowing, setFollowers }) =>
{nick || login || 'No Name'}
{login || '----'}
Account created:
Send message
{count || '0'}
Posts
const CProfilePageData = connect(state => ({
data: state?.postsFeed?.userData || {},
count: state?.postsFeed?.count || null
}))(ProfilePageData)
const ProfilePagePosts = ({ posts }) =>
{Array.isArray(posts) && posts.map(p =>
{p?.images && p?.images[0] && p.images[0]?.url
?
p.images.length === 1
?
< img src={(backURL + '/' + p?.images[0].url)} alt='post Img' />
:
:
}
)
}
export const CProfilePagePosts = connect(state => ({ posts: state.postsFeed?.posts || [] }))(ProfilePagePosts)
const ProfilePage = ({ match: { params: { _id } }, getProfileUser, clearDataProfile }) => {
const [followers, setFollowers] = useState(false)
const [following, setFollowing] = useState(false)
const [checkScroll, setCheckScroll] = useState(true)
useEffect(() => {
document.addEventListener('scroll', scrollHandler)
return () => {
document.removeEventListener('scroll', scrollHandler)
setCheckScroll(true)
clearDataProfile()
}
}, [_id])
useEffect(() => {
if (checkScroll) {
getProfileUser(_id)
setCheckScroll(false)
}
}, [_id, checkScroll])
const scrollHandler = (e) => {
if (e.target.documentElement.scrollHeight - (e.target.documentElement.scrollTop + window.innerHeight) < 500) {
setCheckScroll(true)
}
}
return (
<>
{followers && < CModalFollowers statusModal={setFollowers} title={'Followers'} />}
{following && < CModalFollowing statusModal={setFollowing} title={'Following'} />}
>
)
}
export const CProfilePage = connect(state => ({
posts: state?.postsFeed?.posts || []
}), { getProfileUser: actionProfilePageData, clearDataProfile: actionRemovePostsFeedAC })(ProfilePage)