import React, { FC } from 'react' import { useDispatch } from 'react-redux' import { Link } from 'react-router-dom' import moment from 'moment' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { faClock, faReplyAll, faExclamationCircle } from '@fortawesome/free-solid-svg-icons' import { useTheme } from '../hooks' import { setEntities } from '../actions/entities' import { normalize } from '../utils/normalization' import { Post, EntityType } from '../types' import User from '../components/user' interface Props { post: Post } const PostComponent: FC = ({ post }) => { const theme = useTheme() const dispatch = useDispatch() const showCover = !!post.cover && !post.revealed const handleShowPost = () => { const posts = normalize([{ ...post, revealed: true, }], EntityType.Post) dispatch(setEntities(posts.entities)) } return (
{showCover &&
handleShowPost()}>{post.cover}
} {!showCover &&
{post.text &&

{post.text}

} {post.attachments && post.attachments.length > 0 &&
{post.attachments.map(attachment => (
{attachment.text &&

{attachment.text}

}
))}
}
}
{!!post.cover && post.cover.length > 0 &&
}
{post.replies}
{moment(post.created).format('MMMM Do, h:mm A')}
) } export default PostComponent