display_name.js 845 B

12345678910111213141516171819202122232425
  1. import React from 'react';
  2. import ImmutablePropTypes from 'react-immutable-proptypes';
  3. import escapeTextContentForBrowser from 'escape-html';
  4. import emojify from '../emoji';
  5. class DisplayName extends React.PureComponent {
  6. render () {
  7. const displayName = this.props.account.get('display_name').length === 0 ? this.props.account.get('username') : this.props.account.get('display_name');
  8. const displayNameHTML = { __html: emojify(escapeTextContentForBrowser(displayName)) };
  9. return (
  10. <span className='display-name'>
  11. <strong className='display-name__html' dangerouslySetInnerHTML={displayNameHTML} /> <span className='display-name__account'>@{this.props.account.get('acct')}</span>
  12. </span>
  13. );
  14. }
  15. };
  16. DisplayName.propTypes = {
  17. account: ImmutablePropTypes.map.isRequired
  18. }
  19. export default DisplayName;