You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.9 KiB

  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import ImmutablePropTypes from 'react-immutable-proptypes';
  4. import { Link } from 'react-router-dom';
  5. import Avatar from '../../../components/avatar';
  6. import DisplayName from '../../../components/display_name';
  7. import IconButton from '../../../components/icon_button';
  8. import { defineMessages, injectIntl } from 'react-intl';
  9. import ImmutablePureComponent from 'react-immutable-pure-component';
  10. const messages = defineMessages({
  11. authorize: { id: 'follow_request.authorize', defaultMessage: 'Authorize' },
  12. reject: { id: 'follow_request.reject', defaultMessage: 'Reject' },
  13. });
  14. class AccountAuthorize extends ImmutablePureComponent {
  15. static propTypes = {
  16. account: ImmutablePropTypes.map.isRequired,
  17. onAuthorize: PropTypes.func.isRequired,
  18. onReject: PropTypes.func.isRequired,
  19. intl: PropTypes.object.isRequired,
  20. };
  21. render () {
  22. const { intl, account, onAuthorize, onReject } = this.props;
  23. const content = { __html: account.get('note_emojified') };
  24. return (
  25. <div className='account-authorize__wrapper'>
  26. <div className='account-authorize'>
  27. <Link to={`/@${account.get('acct')}`} className='detailed-status__display-name'>
  28. <div className='account-authorize__avatar'><Avatar account={account} size={48} /></div>
  29. <DisplayName account={account} />
  30. </Link>
  31. <div className='account__header__content translate' dangerouslySetInnerHTML={content} />
  32. </div>
  33. <div className='account--panel'>
  34. <div className='account--panel__button'><IconButton title={intl.formatMessage(messages.authorize)} icon='check' onClick={onAuthorize} /></div>
  35. <div className='account--panel__button'><IconButton title={intl.formatMessage(messages.reject)} icon='times' onClick={onReject} /></div>
  36. </div>
  37. </div>
  38. );
  39. }
  40. }
  41. export default injectIntl(AccountAuthorize);