UserPicture.js 906 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import React from 'react';
  2. // TODO UserComponent?
  3. export default class UserPicture extends React.Component {
  4. getUserPicture(user) {
  5. // from swig.setFilter('picture', function(user)
  6. if (user.image && user.image != '/images/userpicture.png') {
  7. return user.image;
  8. } else {
  9. return '/images/userpicture.png';
  10. }
  11. }
  12. getClassName() {
  13. let className = ['picture', 'picture-rounded'];
  14. if (this.props.size) {
  15. className.push('picture-' + this.props.size);
  16. }
  17. return className.join(' ');
  18. }
  19. render() {
  20. const user = this.props.user;
  21. return (
  22. <img
  23. src={this.getUserPicture(user)}
  24. alt={user.username}
  25. className={this.getClassName()}
  26. />
  27. );
  28. }
  29. }
  30. UserPicture.propTypes = {
  31. user: React.PropTypes.object.isRequired,
  32. size: React.PropTypes.string,
  33. };
  34. UserPicture.defaultProps = {
  35. user: {},
  36. size: null,
  37. };