import React, { useState } from 'react'
import { Button, Divider, Dropdown, Menu } from 'antd';
import { connect } from 'react-redux'
import PostImage from '../components/main/postsFeed/PostImage'
import { PostDescription } from './MainPostsFeed';
import Text from 'antd/lib/typography/Text';
import { CFieldCommentSend, CFieldSubCommentSend, CFieldUpsertCommentSend } from '../components/main/postsFeed/FieldComment';
import { CPostUserPanel } from '../components/main/postsFeed/PostUserPanel';
import { Comment, Tooltip } from 'antd';
import moment from 'moment';
import { Link } from 'react-router-dom';
import { DeleteOutlined, EditOutlined, LikeFilled, LikeOutlined, MoreOutlined } from '@ant-design/icons';
import { actionLikeComment, actionDelLikeComment, actionSubComment } from '../actions';
import { CPostTitle } from '../components/main/post/PostTitle';
import { UserAvatar } from '../components/header/UserAvatar';
import { CPreloader } from './Preloader';
import Paragraph from 'antd/lib/typography/Paragraph';
const PostPageTitle = ({ data: { owner }, postId }) =>
const CPostPageTitle = connect(state => ({ data: state?.postsFeed?.posts || {}, postId: state?.postsFeed?.posts?._id }))(PostPageTitle)
const PostCommentAuthor = ({ owner }) =>
<>
{owner?.nick ? owner.nick : owner?.login ? owner.login : 'Null'}
>
const EditMenu = ({ setEditComment }) =>
const PostCommentText = ({ myID, commentId, owner, text }) => {
const [editComment, setEditComment] = useState(false)
return (
<>
{owner?._id === myID && } placement="bottomRight">
}
{!editComment
? } trigger={['contextMenu']}>
{text}
Paragraph>
: }
>)
}
const CPostCommentText = connect(state => ({ myID: state.auth.payload.sub.id || '' }))(PostCommentText)
const PostCommentDate = ({ createdAt }) =>
{moment(new Date(+createdAt)).startOf().fromNow()}
Tooltip>
const PostCommentAction = ({ myID, commentId, likes, delLikeComment, addLikeComment }) => {
const [open, setOpen] = useState(false);
const likeId = likes.find(l => l?.owner?._id === myID)?._id
const changeLike = () => likeId ? delLikeComment(likeId, commentId) : addLikeComment(commentId)
return (
<>
{likeId ? : }
{likes.length ? likes.length : ''}
setOpen(!open)}>Reply to
{open && }
>
)
}
const CPostCommentAction = connect(state => ({
myID: state.auth.payload.sub.id || ''
}), {
addLikeComment: actionLikeComment,
delLikeComment: actionDelLikeComment
})(PostCommentAction)
const PostComments = ({ comments, findSubComment, parentId, }) => {
return (<>
{comments?.length && Object.keys(comments[0]).length > 1
? comments.map(c => {
return (
}
avatar={< UserAvatar avatar={c?.owner?.avatar} avatarSize={'35px'} />}
datetime={}
content={}
actions={[]}
>
{
c.answers && c.answers?.length
? <>
>
: null
}
)
})
:
!!comments.length &&
findSubComment(parentId)} >
View answers {comments.length}
}
>)
}
const CPostComments = connect(state => ({
comments: state?.postsFeed?.posts?.comments || [],
}), { findSubComment: actionSubComment })(PostComments)
const PostPageDescrption = ({ data: { _id, likes, text, title, createdAt, } }) =>
{ }} /> {/* setOpen - функция заглушка для пропса компонента*/}
const CPostPageDescrption = connect(state => ({ data: state?.postsFeed?.posts || {} }))(PostPageDescrption)
const PostPage = ({ data: { images } }) =>
export const CPostPage = connect(state => ({ data: state?.postsFeed?.posts || {} }))(PostPage)