Vulcan/packages/base-components/lib/posts/Post.jsx

39 lines
1.1 KiB
React
Raw Normal View History

const Post = (props) => {
2016-02-18 16:26:52 +09:00
({ListContainer, CommentList, CommentNew, PostCategories, SocialShare} = Telescope.components);
2016-02-18 16:26:52 +09:00
2016-02-23 11:34:40 +09:00
const post = props.document;
const htmlBody = {__html: post.htmlBody};
2016-02-18 16:26:52 +09:00
return (
<div className="post">
2016-02-18 16:26:52 +09:00
2016-02-23 11:34:40 +09:00
<h3>{post.title}</h3>
<SocialShare url={ Posts.getLink(post) } title={ post.title }/>
2016-02-23 11:34:40 +09:00
<p>{post.commentCount} comments</p>
<p>{moment(post.postedAt).fromNow()}</p>
{post.categoriesArray ? <PostCategories categories={post.categoriesArray} /> : ""}
2016-02-18 16:26:52 +09:00
<div dangerouslySetInnerHTML={htmlBody}></div>
2016-02-16 16:12:13 +09:00
<div className="comments-thread">
<h4>Comments</h4>
2016-02-18 16:26:52 +09:00
<ListContainer
collection={Comments}
publication="comments.list"
2016-02-23 11:34:40 +09:00
selector={{postId: post._id}}
terms={{postId: post._id, view: "postComments"}}
2016-02-18 16:26:52 +09:00
limit={0}
2016-02-18 17:53:04 +09:00
parentProperty="parentCommentId"
><CommentList/></ListContainer>
2016-02-23 16:49:56 +09:00
<div className="post-new-comment">
<h4>New Comment:</h4>
<CommentNew type="comment" postId={post._id} />
</div>
2016-02-16 16:12:13 +09:00
</div>
2016-02-18 16:26:52 +09:00
</div>
)
}
module.exports = Post;