import * as React from 'react'; import IPost from '../../interfaces/IPost'; import IPostStatus from '../../interfaces/IPostStatus'; import IBoard from '../../interfaces/IBoard'; import PostBoardSelect from './PostBoardSelect'; import PostStatusSelect from './PostStatusSelect'; import PostBoardLabel from '../shared/PostBoardLabel'; import PostStatusLabel from '../shared/PostStatusLabel'; import Comments from '../../containers/Comments'; import { MutedText } from '../shared/CustomTexts'; import friendlyDate from '../../helpers/friendlyDate'; interface Props { postId: number; post: IPost; boards: Array; postStatuses: Array; isLoggedIn: boolean; isPowerUser: boolean; authenticityToken: string; requestPost(postId: number): void; changePostBoard( postId: number, newBoardId: number, authenticityToken: string, ): void; changePostStatus( postId: number, newPostStatusId: number, authenticityToken: string, ): void; } class PostP extends React.Component { componentDidMount() { this.props.requestPost(this.props.postId); } render() { const { post, boards, postStatuses, isLoggedIn, isPowerUser, authenticityToken, changePostBoard, changePostStatus, } = this.props; return (

{post.title}

{ isPowerUser && post ? Edit : null }
{ isPowerUser && post ?
changePostBoard(post.id, newBoardId, authenticityToken) } /> changePostStatus(post.id, newPostStatusId, authenticityToken) } />
:
board.id === post.boardId)} /> postStatus.id === post.postStatusId)} />
}

{post.description}

{friendlyDate(post.createdAt)}
); } } export default PostP;