mirror of
https://github.com/flarum/core.git
synced 2025-10-12 07:24:27 +02:00
Massive JavaScript cleanup
- Use JSX for templates - Docblock/comment everything - Mostly passes ESLint (still some work to do) - Lots of renaming, refactoring, etc. CSS hasn't been updated yet.
This commit is contained in:
32
js/forum/src/components/PostPreview.js
Normal file
32
js/forum/src/components/PostPreview.js
Normal file
@@ -0,0 +1,32 @@
|
||||
import Component from 'flarum/Component';
|
||||
import avatar from 'flarum/helpers/avatar';
|
||||
import username from 'flarum/helpers/username';
|
||||
import humanTime from 'flarum/helpers/humanTime';
|
||||
import highlight from 'flarum/helpers/highlight';
|
||||
|
||||
/**
|
||||
* The `PostPreview` component shows a link to a post containing the avatar and
|
||||
* username of the author, and a short excerpt of the post's content.
|
||||
*
|
||||
* ### Props
|
||||
*
|
||||
* - `post`
|
||||
*/
|
||||
export default class PostPreview extends Component {
|
||||
view() {
|
||||
const post = this.props.post;
|
||||
const user = post.user();
|
||||
const excerpt = highlight(post.contentPlain(), this.props.highlight, 200);
|
||||
|
||||
return (
|
||||
<a className="post-preview" href={app.route.post(post)} config={m.route} onclick={this.props.onclick}>
|
||||
<span className="post-preview-content">
|
||||
{avatar(user)}
|
||||
{username(user)}
|
||||
{humanTime(post.time())}
|
||||
<span className="excerpt">{excerpt}</span>
|
||||
</span>
|
||||
</a>
|
||||
);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user