diff options
Diffstat (limited to 'app/javascript/flavours/glitch/components/display_name.js')
-rw-r--r-- | app/javascript/flavours/glitch/components/display_name.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/app/javascript/flavours/glitch/components/display_name.js b/app/javascript/flavours/glitch/components/display_name.js new file mode 100644 index 000000000..a26cff049 --- /dev/null +++ b/app/javascript/flavours/glitch/components/display_name.js @@ -0,0 +1,39 @@ +// Package imports. +import classNames from 'classnames'; +import PropTypes from 'prop-types'; +import React from 'react'; +import ImmutablePropTypes from 'react-immutable-proptypes'; + +// The component. +export default function DisplayName ({ + account, + className, + inline, + localDomain, +}) { + const computedClass = classNames('display-name', { inline }, className); + + if (!account) return null; + + let acct = account.get('acct'); + if (acct.indexOf('@') === -1 && localDomain) { + acct = `${acct}@${localDomain}`; + } + + // The result. + return account ? ( + <span className={computedClass}> + <bdi><strong className='display-name__html' dangerouslySetInnerHTML={{ __html: account.get('display_name_html') }} /></bdi> + {inline ? ' ' : null} + <span className='display-name__account'>@{acct}</span> + </span> + ) : null; +} + +// Props. +DisplayName.propTypes = { + account: ImmutablePropTypes.map, + className: PropTypes.string, + inline: PropTypes.bool, + localDomain: PropTypes.string, +}; |