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

44 lines
1.4 KiB
React
Raw Normal View History

2016-03-28 12:36:29 +09:00
import React, { PropTypes, Component } from 'react';
import SmartContainers from "meteor/utilities:react-list-container";
const ListContainer = SmartContainers.ListContainer;
2016-03-28 12:36:29 +09:00
2016-04-19 15:54:53 +09:00
const UsersProfile = ({user, currentUser}) => {
({HeadTags, PostsList} = Telescope.components);
const twitterName = Users.getTwitterName(user);
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">
<HeadTags url={Users.getProfileUrl(user, true)} title={Users.getDisplayName(user)} description={user.telescope.bio} />
2016-03-28 12:36:29 +09:00
<h2>{Users.getDisplayName(user)}</h2>
<p>{user.telescope.bio}</p>
<ul>
{twitterName ? <li><a href={"http://twitter.com/" + twitterName}>@{twitterName}</a></li> : null }
2016-03-28 12:36:29 +09:00
{user.telescope.website ? <li><a href={user.telescope.website}>{user.telescope.website}</a></li> : null }
</ul>
<h3>Posts</h3>
<ListContainer
collection={Posts}
publication="posts.list"
terms={terms}
selector={selector}
options={options}
joins={Posts.getJoins()}
cacheSubscription={false}
component={PostsList}
componentProps={{showHeader: false}}
/>
2016-03-28 12:36:29 +09:00
</div>
)
}
2016-04-19 15:54:53 +09:00
UsersProfile.propTypes = {
2016-03-28 12:36:29 +09:00
user: React.PropTypes.object.isRequired,
currentUser: React.PropTypes.object
}
2016-04-19 15:54:53 +09:00
module.exports = UsersProfile;