mirror of
https://github.com/vale981/Vulcan
synced 2025-03-09 12:16:37 -04:00
43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
import { registerComponent } from 'meteor/vulcan:lib';
|
|
import React from 'react';
|
|
import PropTypes from 'prop-types';
|
|
import Users from 'meteor/vulcan:users';
|
|
import { Link } from 'react-router';
|
|
import classNames from 'classnames';
|
|
|
|
const Avatar = ({className, user, link}) => {
|
|
|
|
const avatarUrl = user.avatarUrl || Users.avatar.getUrl(user);
|
|
|
|
const img = <img alt={Users.getDisplayName(user)} className="avatar-image" src={avatarUrl} title={user.username}/>;
|
|
const initials = <span className="avatar-initials"><span>{Users.avatar.getInitials(user)}</span></span>;
|
|
|
|
const avatar = avatarUrl ? img : initials;
|
|
|
|
return (
|
|
<div className={classNames('avatar', className)}>
|
|
{link ?
|
|
<Link to={Users.getProfileUrl(user)}>
|
|
<span>{avatar}</span>
|
|
</Link>
|
|
: <span>{avatar}</span>
|
|
}
|
|
</div>
|
|
);
|
|
|
|
}
|
|
|
|
Avatar.propTypes = {
|
|
user: PropTypes.object.isRequired,
|
|
size: PropTypes.string,
|
|
link: PropTypes.bool
|
|
}
|
|
|
|
Avatar.defaultProps = {
|
|
size: 'medium',
|
|
link: true
|
|
}
|
|
|
|
Avatar.displayName = 'Avatar';
|
|
|
|
registerComponent('Avatar', Avatar);
|