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-06 10:06:53 +09:00
|
|
|
import { ListContainer } from "meteor/utilities:react-list-container";
|
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';
|
2016-06-30 12:05:59 +09:00
|
|
|
import { Link } from 'react-router';
|
2016-03-28 12:36:29 +09:00
|
|
|
|
2016-08-06 19:47:04 +02:00
|
|
|
const UsersProfile = ({user}, {currentUser}) => {
|
2016-04-06 16:56:05 +02:00
|
|
|
|
2016-05-09 13:32:13 +09:00
|
|
|
const twitterName = Users.getTwitterName(user);
|
|
|
|
|
2016-05-13 16:25:04 +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 (
|
2016-04-19 15:45:36 +09:00
|
|
|
<div className="page users-profile">
|
2016-05-22 16:42:24 +09:00
|
|
|
<Telescope.components.HeadTags url={Users.getProfileUrl(user, true)} title={Users.getDisplayName(user)} description={user.telescope.bio} />
|
2016-05-22 21:56:17 +09:00
|
|
|
<h2 className="page-title">{Users.getDisplayName(user)}</h2>
|
2016-03-28 12:36:29 +09:00
|
|
|
<p>{user.telescope.bio}</p>
|
|
|
|
<ul>
|
2016-05-09 13:32:13 +09:00
|
|
|
{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 }
|
2016-08-06 19:47:04 +02:00
|
|
|
<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>
|
2016-05-13 16:25:04 +09:00
|
|
|
<ListContainer
|
|
|
|
collection={Posts}
|
|
|
|
publication="posts.list"
|
|
|
|
terms={terms}
|
|
|
|
selector={selector}
|
|
|
|
options={options}
|
|
|
|
joins={Posts.getJoins()}
|
|
|
|
cacheSubscription={false}
|
2016-05-22 16:42:24 +09:00
|
|
|
component={Telescope.components.PostsList}
|
2016-05-13 16:25:04 +09:00
|
|
|
componentProps={{showHeader: false}}
|
2016-06-06 10:06:53 +09:00
|
|
|
listId="posts.list.user"
|
2016-05-13 16:25:04 +09:00
|
|
|
/>
|
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,
|
2016-08-06 19:47:04 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
UsersProfile.contextTypes = {
|
2016-03-28 12:36:29 +09:00
|
|
|
currentUser: React.PropTypes.object
|
|
|
|
}
|
|
|
|
|
2016-05-22 16:42:24 +09:00
|
|
|
UsersProfile.displayName = "UsersProfile";
|
|
|
|
|
2016-04-19 15:54:53 +09:00
|
|
|
module.exports = UsersProfile;
|