You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

27 lines
1006 B

7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
  1. import ImmutablePropTypes from 'react-immutable-proptypes';
  2. import PureRenderMixin from 'react-addons-pure-render-mixin';
  3. import escapeTextContentForBrowser from 'escape-html';
  4. import emojify from '../emoji';
  5. const DisplayName = React.createClass({
  6. propTypes: {
  7. account: ImmutablePropTypes.map.isRequired
  8. },
  9. mixins: [PureRenderMixin],
  10. render () {
  11. const displayName = this.props.account.get('display_name').length === 0 ? this.props.account.get('username') : this.props.account.get('display_name');
  12. const displayNameHTML = { __html: emojify(escapeTextContentForBrowser(displayName)) };
  13. return (
  14. <span style={{ display: 'block', maxWidth: '100%', overflow: 'hidden', whiteSpace: 'nowrap', textOverflow: 'ellipsis' }} className='display-name'>
  15. <strong style={{ fontWeight: '500' }} dangerouslySetInnerHTML={displayNameHTML} /> <span style={{ fontSize: '14px' }}>@{this.props.account.get('acct')}</span>
  16. </span>
  17. );
  18. }
  19. });
  20. export default DisplayName;