-
-
Notifications
You must be signed in to change notification settings - Fork 829
/
PostUser.js
45 lines (42 loc) · 1.24 KB
/
PostUser.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import app from '../../forum/app';
import Component from '../../common/Component';
import Link from '../../common/components/Link';
import UserCard from './UserCard';
import username from '../../common/helpers/username';
import userOnline from '../../common/helpers/userOnline';
import listItems from '../../common/helpers/listItems';
import Avatar from '../../common/components/Avatar';
/**
* The `PostUser` component shows the avatar and username of a post's author.
*
* ### Attrs
*
* - `post`
*/
export default class PostUser extends Component {
view() {
const post = this.attrs.post;
const user = post.user();
if (!user) {
return (
<div className="PostUser">
<h3 className="PostUser-name">
<Avatar user={user} className="Post-avatar" /> {username(user)}
</h3>
</div>
);
}
return (
<div className="PostUser">
<h3 className="PostUser-name">
<Link href={app.route.user(user)}>
<Avatar user={user} className="Post-avatar" />
{userOnline(user)}
{username(user)}
</Link>
</h3>
<ul className="PostUser-badges badges badges--packed">{listItems(user.badges().toArray())}</ul>
</div>
);
}
}