Support emojis in display name, bio

This commit is contained in:
Eugen Rochko
2016-11-15 18:38:57 +01:00
parent 4f07fb1f0a
commit 489bd99803
5 changed files with 33 additions and 17 deletions

View File

@ -1,5 +1,7 @@
import ImmutablePropTypes from 'react-immutable-proptypes';
import PureRenderMixin from 'react-addons-pure-render-mixin';
import escapeTextContentForBrowser from 'react/lib/escapeTextContentForBrowser';
import emojify from '../emoji';
const DisplayName = React.createClass({
@ -10,15 +12,12 @@ const DisplayName = React.createClass({
mixins: [PureRenderMixin],
render () {
let displayName = this.props.account.get('display_name');
if (displayName.length === 0) {
displayName = this.props.account.get('username');
}
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 style={{ display: 'block', maxWidth: '100%', overflow: 'hidden', whiteSpace: 'nowrap', textOverflow: 'ellipsis' }}>
<strong style={{ fontWeight: 'bold' }}>{displayName}</strong> <span style={{ fontSize: '14px' }}>@{this.props.account.get('acct')}</span>
<span style={{ display: 'block', maxWidth: '100%', overflow: 'hidden', whiteSpace: 'nowrap', textOverflow: 'ellipsis' }} className='display-name'>
<strong style={{ fontWeight: '500' }} dangerouslySetInnerHTML={displayNameHTML} /> <span style={{ fontSize: '14px' }}>@{this.props.account.get('acct')}</span>
</span>
);
}

View File

@ -1,10 +1,6 @@
import ImmutablePropTypes from 'react-immutable-proptypes';
import PureRenderMixin from 'react-addons-pure-render-mixin';
import emojione from 'emojione';
emojione.imageType = 'png';
emojione.sprites = false;
emojione.imagePathPNG = '/emoji/';
import emojify from '../emoji';
const StatusContent = React.createClass({
@ -61,7 +57,7 @@ const StatusContent = React.createClass({
},
render () {
const content = { __html: emojione.unicodeToImage(this.props.status.get('content')) };
const content = { __html: emojify(this.props.status.get('content')) };
return <div className='status__content' style={{ cursor: 'pointer' }} dangerouslySetInnerHTML={content} onClick={this.props.onClick} />;
},