Vulcan/packages/nova-base-components/lib/users/UsersProfile.jsx

42 lines
1.5 KiB
React
Raw Normal View History

2016-08-08 11:18:21 +09:00
import Telescope from 'meteor/nova:lib';
2016-03-28 12:36:29 +09:00
import React, { PropTypes, Component } from 'react';
2016-06-09 20:26:33 +09:00
import { FormattedMessage } from 'react-intl';
2016-06-23 11:40:35 +09:00
import Posts from "meteor/nova:posts";
2016-06-23 15:00:58 +09:00
import Users from 'meteor/nova:users';
import { Link } from 'react-router';
2016-03-28 12:36:29 +09:00
2016-10-26 18:03:26 +09:00
const UsersProfile = (props) => {
const user = props.document;
const twitterName = Users.getTwitterName(user);
2016-10-26 18:03:26 +09:00
const terms = {view: "userPosts", userId: user._id};
const {selector, options} = Posts.parameters.get(terms);
2016-03-28 12:36:29 +09:00
return (
<div className="page users-profile">
<Telescope.components.HeadTags url={Users.getProfileUrl(user, true)} title={Users.getDisplayName(user)} description={user.nova_bio} />
2016-05-22 21:56:17 +09:00
<h2 className="page-title">{Users.getDisplayName(user)}</h2>
<p>{user.nova_bio}</p>
2016-03-28 12:36:29 +09:00
<ul>
{twitterName ? <li><a href={"http://twitter.com/" + twitterName}>@{twitterName}</a></li> : null }
{user.nova_website ? <li><a href={user.nova_website}>{user.nova_website}</a></li> : null }
<Telescope.components.CanDo document={user} action="users.edit">
<li><Link to={Users.getEditUrl(user)}><FormattedMessage id="users.edit_account"/></Link></li>
</Telescope.components.CanDo>
2016-03-28 12:36:29 +09:00
</ul>
2016-06-09 20:26:33 +09:00
<h3><FormattedMessage id="users.posts"/></h3>
<Telescope.components.PostsListContainer terms={terms} component={Telescope.components.PostsList} />
2016-03-28 12:36:29 +09:00
</div>
)
}
2016-04-19 15:54:53 +09:00
UsersProfile.propTypes = {
document: React.PropTypes.object.isRequired,
}
UsersProfile.displayName = "UsersProfile";
2016-10-26 18:03:26 +09:00
module.exports = UsersProfile;