// Package imports. import React from 'react'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; // Mastodon imports. import Avatar from './avatar'; import AvatarOverlay from './avatar_overlay'; import AvatarComposite from './avatar_composite'; import DisplayName from './display_name'; export default class StatusHeader extends React.PureComponent { static propTypes = { status: ImmutablePropTypes.map.isRequired, friend: ImmutablePropTypes.map, parseClick: PropTypes.func.isRequired, otherAccounts: ImmutablePropTypes.list, }; // Handles clicks on account name/image handleClick = (acct, e) => { const { parseClick } = this.props; parseClick(e, `/@${acct}`); } handleAccountClick = (e) => { const { status } = this.props; this.handleClick(status.getIn(['account', 'acct']), e); } // Rendering. render () { const { status, friend, otherAccounts, } = this.props; const account = status.get('account'); let statusAvatar; if (otherAccounts && otherAccounts.size > 0) { statusAvatar = ; } else if (friend === undefined || friend === null) { statusAvatar = ; } else { statusAvatar = ; } if (!otherAccounts) { return (
{statusAvatar}
); } else { // This is a DM conversation return (
{statusAvatar}
); } } }