import React, { useContext } from 'react'; import classNames from 'classnames'; import { generatePath } from 'react-router'; import { Link } from 'react-router-dom'; import { injectIntl, intlShape } from '@edx/frontend-platform/i18n'; import { Badge, Icon } from '@edx/paragon'; import { Flag, Pin, Unread } from '@edx/paragon/icons'; import { Routes, ThreadType } from '../../../data/constants'; import AuthorLabel from '../../common/AuthorLabel'; import { DiscussionContext } from '../../common/context'; import messages from './messages'; import PostFooter from './PostFooter'; import { PostAvatar } from './PostHeader'; import { postShape } from './proptypes'; function PostLink({ post, intl, }) { const { page, postId, } = useContext(DiscussionContext); const linkUrl = generatePath(Routes.COMMENTS.PAGES[page], { courseId: post.courseId, topicId: post.topicId, postId: post.id, }); const showAnsweredBadge = post.hasEndorsed && post.type === ThreadType.QUESTION; return ( {post.pinned && (
)} {post.abuseFlagged && (
{intl.formatMessage(messages.contentReported)}
)}
{post.title}
{showAnsweredBadge && (
{intl.formatMessage(messages.answered)}
)}
{post.previewBody}
); } PostLink.propTypes = { post: postShape.isRequired, intl: intlShape.isRequired, }; export default injectIntl(PostLink);