2
0

UserPicture.js 930 B

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