diff options
Diffstat (limited to 'app/javascript/mastodon/components/display_name.js')
-rw-r--r-- | app/javascript/mastodon/components/display_name.js | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/app/javascript/mastodon/components/display_name.js b/app/javascript/mastodon/components/display_name.js new file mode 100644 index 000000000..6bdd06db7 --- /dev/null +++ b/app/javascript/mastodon/components/display_name.js @@ -0,0 +1,25 @@ +import React from 'react'; +import ImmutablePropTypes from 'react-immutable-proptypes'; +import escapeTextContentForBrowser from 'escape-html'; +import emojify from '../emoji'; + +class DisplayName extends React.PureComponent { + + render () { + const displayName = this.props.account.get('display_name').length === 0 ? this.props.account.get('username') : this.props.account.get('display_name'); + const displayNameHTML = { __html: emojify(escapeTextContentForBrowser(displayName)) }; + + return ( + <span className='display-name'> + <strong className='display-name__html' dangerouslySetInnerHTML={displayNameHTML} /> <span className='display-name__account'>@{this.props.account.get('acct')}</span> + </span> + ); + } + +}; + +DisplayName.propTypes = { + account: ImmutablePropTypes.map.isRequired +} + +export default DisplayName; |