2017-03-23 16:27:59 +09:00
|
|
|
import { registerComponent } from 'meteor/vulcan:core';
|
2017-05-19 14:42:43 -06:00
|
|
|
import React from 'react';
|
|
|
|
import PropTypes from 'prop-types';
|
2017-03-23 16:27:59 +09:00
|
|
|
import Users from 'meteor/vulcan:users';
|
2016-06-30 09:56:24 +09:00
|
|
|
import { Link } from 'react-router';
|
2016-05-22 15:23:12 +09:00
|
|
|
|
2016-04-19 15:45:36 +09:00
|
|
|
const UsersAvatar = ({user, size, link}) => {
|
2016-03-24 16:03:30 +09:00
|
|
|
|
|
|
|
const sizes = {
|
|
|
|
small: "20px",
|
|
|
|
medium: "30px",
|
|
|
|
large: "50px"
|
|
|
|
}
|
|
|
|
|
|
|
|
const aStyle = {
|
|
|
|
borderRadius: "100%",
|
|
|
|
display: "inline-block",
|
|
|
|
height: sizes[size],
|
|
|
|
width: sizes[size]
|
2017-02-03 13:55:51 -05:00
|
|
|
};
|
2016-03-24 16:03:30 +09:00
|
|
|
|
|
|
|
const imgStyle = {
|
|
|
|
borderRadius: "100%",
|
2016-03-25 12:42:25 +09:00
|
|
|
display: "block",
|
|
|
|
height: sizes[size],
|
|
|
|
width: sizes[size]
|
2017-02-03 13:55:51 -05:00
|
|
|
};
|
2016-03-24 16:03:30 +09:00
|
|
|
|
2017-05-01 10:49:27 +09:00
|
|
|
const avatarUrl = user.avatarUrl || Users.avatar.getUrl(user);
|
2016-05-22 15:46:44 +09:00
|
|
|
|
2017-02-03 13:55:51 -05:00
|
|
|
const img = <img alt={Users.getDisplayName(user)} style={imgStyle} className="avatar" src={avatarUrl} title={user.username}/>;
|
2016-06-23 15:00:58 +09:00
|
|
|
const initials = <span className="avatar-initials"><span>{Users.avatar.getInitials(user)}</span></span>;
|
2016-05-22 15:46:44 +09:00
|
|
|
|
|
|
|
const avatar = avatarUrl ? img : initials;
|
2016-03-25 12:42:25 +09:00
|
|
|
|
2016-06-30 09:56:24 +09:00
|
|
|
return link ? <Link style={aStyle} className="users-avatar" to={Users.getProfileUrl(user)}>{avatar}</Link> : avatar;
|
2016-03-25 12:42:25 +09:00
|
|
|
|
2016-03-24 16:03:30 +09:00
|
|
|
}
|
|
|
|
|
2016-04-19 15:45:36 +09:00
|
|
|
UsersAvatar.propTypes = {
|
2017-05-19 14:42:43 -06:00
|
|
|
user: PropTypes.object.isRequired,
|
|
|
|
size: PropTypes.string,
|
|
|
|
link: PropTypes.bool
|
2016-03-24 16:03:30 +09:00
|
|
|
}
|
|
|
|
|
2016-04-19 15:45:36 +09:00
|
|
|
UsersAvatar.defaultProps = {
|
2017-05-19 14:42:43 -06:00
|
|
|
size: 'medium',
|
2016-03-25 12:42:25 +09:00
|
|
|
link: true
|
2016-03-24 16:03:30 +09:00
|
|
|
}
|
2016-03-19 18:19:28 +09:00
|
|
|
|
2017-05-19 14:42:43 -06:00
|
|
|
UsersAvatar.displayName = 'UsersAvatar';
|
2016-05-22 16:42:24 +09:00
|
|
|
|
2017-02-03 13:55:51 -05:00
|
|
|
registerComponent('UsersAvatar', UsersAvatar);
|