2019-09-02 19:26:34 +02:00
|
|
|
import * as React from 'react';
|
|
|
|
|
|
2019-09-12 18:03:19 +02:00
|
|
|
import PostStatusLabel from '../shared/PostStatusLabel';
|
|
|
|
|
|
2019-09-11 18:30:59 +02:00
|
|
|
import IPostStatus from '../../interfaces/IPostStatus';
|
|
|
|
|
|
2019-09-02 19:26:34 +02:00
|
|
|
interface Props {
|
2019-09-12 15:51:45 +02:00
|
|
|
id: number;
|
2019-09-02 19:26:34 +02:00
|
|
|
title: string;
|
|
|
|
|
description?: string;
|
2019-09-11 18:30:59 +02:00
|
|
|
postStatus: IPostStatus;
|
2019-09-02 19:26:34 +02:00
|
|
|
}
|
|
|
|
|
|
2019-09-12 15:51:45 +02:00
|
|
|
const PostListItem = ({ id, title, description, postStatus}: Props) => (
|
|
|
|
|
<a href={`/posts/${id}`} className="postLink">
|
2019-09-02 19:26:34 +02:00
|
|
|
<div className="postListItem">
|
|
|
|
|
<div className="postTitle">{title}</div>
|
|
|
|
|
<div className="postDescription">
|
|
|
|
|
{
|
|
|
|
|
description && description.length > 120 ?
|
|
|
|
|
description.slice(0, 119) + '...'
|
|
|
|
|
:
|
|
|
|
|
description || '<No description provided.>'
|
|
|
|
|
}
|
|
|
|
|
</div>
|
|
|
|
|
<div className="postDetails">
|
2019-09-02 20:26:09 +02:00
|
|
|
<div className="postDetailsComments">
|
|
|
|
|
<span className="comment icon"></span>
|
|
|
|
|
<span>0 comments</span>
|
|
|
|
|
</div>
|
2019-09-12 18:03:19 +02:00
|
|
|
{ postStatus ? <PostStatusLabel {...postStatus} /> : null }
|
2019-09-02 19:26:34 +02:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</a>
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
export default PostListItem;
|