// 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 DisplayName from './display_name'; export default class StatusHeader extends React.PureComponent { static propTypes = { status: ImmutablePropTypes.map.isRequired, friend: ImmutablePropTypes.map, parseClick: PropTypes.func.isRequired, }; // Handles clicks on account name/image handleAccountClick = (e) => { const { status, parseClick } = this.props; parseClick(e, `/accounts/${status.getIn(['account', 'id'])}`); } // Rendering. render () { const { status, friend, } = this.props; const account = status.get('account'); return ( <div className='status__info__account' > <a href={account.get('url')} target='_blank' className='status__avatar' onClick={this.handleAccountClick} > { friend ? ( <AvatarOverlay account={account} friend={friend} /> ) : ( <Avatar account={account} size={48} /> ) } </a> <a href={account.get('url')} target='_blank' className='status__display-name' onClick={this.handleAccountClick} > <DisplayName account={account} /> </a> </div> ); } }