2018-03-29 12:43:20 +00:00
import React from 'react' ;
import PropTypes from 'prop-types' ;
import ImmutablePropTypes from 'react-immutable-proptypes' ;
import { FormattedMessage } from 'react-intl' ;
import ImmutablePureComponent from 'react-immutable-pure-component' ;
import AvatarOverlay from '../../../components/avatar_overlay' ;
import DisplayName from '../../../components/display_name' ;
2019-09-09 14:41:41 +00:00
import Icon from 'flavours/glitch/components/icon' ;
2018-03-29 12:43:20 +00:00
export default class MovedNote extends ImmutablePureComponent {
static contextTypes = {
router : PropTypes . object ,
} ;
static propTypes = {
from : ImmutablePropTypes . map . isRequired ,
to : ImmutablePropTypes . map . isRequired ,
} ;
handleAccountClick = e => {
if ( e . button === 0 ) {
e . preventDefault ( ) ;
2019-04-15 20:23:05 +00:00
let state = { ... this . context . router . history . location . state } ;
state . mastodonBackSteps = ( state . mastodonBackSteps || 0 ) + 1 ;
this . context . router . history . push ( ` /accounts/ ${ this . props . to . get ( 'id' ) } ` , state ) ;
2018-03-29 12:43:20 +00:00
}
e . stopPropagation ( ) ;
}
render ( ) {
const { from , to } = this . props ;
const displayNameHtml = { _ _html : from . get ( 'display_name_html' ) } ;
return (
< div className = 'account__moved-note' >
< div className = 'account__moved-note__message' >
2019-09-09 14:41:41 +00:00
< div className = 'account__moved-note__icon-wrapper' > < Icon id = 'suitcase' className = 'account__moved-note__icon' fixedWidth / > < / d i v >
2018-10-22 16:52:59 +00:00
< FormattedMessage id = 'account.moved_to' defaultMessage = '{name} has moved to:' values = { { name : < bdi > < strong dangerouslySetInnerHTML = { displayNameHtml } / > < /bdi> }} / >
2018-03-29 12:43:20 +00:00
< / d i v >
< a href = { to . get ( 'url' ) } onClick = { this . handleAccountClick } className = 'detailed-status__display-name' >
< div className = 'detailed-status__display-avatar' > < AvatarOverlay account = { to } friend = { from } / > < / d i v >
< DisplayName account = { to } / >
< / a >
< / d i v >
) ;
}
}