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.

64 lines
1.7 KiB

  1. import PureRenderMixin from 'react-addons-pure-render-mixin';
  2. import ImmutablePropTypes from 'react-immutable-proptypes';
  3. import { defineMessages, injectIntl } from 'react-intl';
  4. import IconButton from '../../../components/icon_button';
  5. import Button from '../../../components/button';
  6. import DetailedStatus from '../../status/components/detailed_status';
  7. const messages = defineMessages({
  8. close: { id: 'lightbox.close', defaultMessage: 'Close' },
  9. reblog: { id: 'status.reblog', defaultMessage: 'Boost' }
  10. });
  11. const closeStyle = {
  12. position: 'absolute',
  13. top: '4px',
  14. right: '4px'
  15. };
  16. const buttonContainerStyle = {
  17. textAlign: 'right',
  18. padding: '10px'
  19. };
  20. const BoostModal = React.createClass({
  21. propTypes: {
  22. status: ImmutablePropTypes.map.isRequired,
  23. onReblog: React.PropTypes.func.isRequired,
  24. onClose: React.PropTypes.func.isRequired,
  25. intl: React.PropTypes.object.isRequired
  26. },
  27. mixins: [PureRenderMixin],
  28. handleReblog() {
  29. this.props.onReblog(this.props.status);
  30. this.props.onClose();
  31. },
  32. handleOpenMedia() {
  33. // do nothing"
  34. },
  35. render () {
  36. const { status, intl, onClose } = this.props;
  37. const reblogButton = <span><i className='fa fa-retweet' /> {intl.formatMessage(messages.reblog)}</span>;
  38. return (
  39. <div className='modal-root__modal boost-modal'>
  40. <IconButton title={intl.formatMessage(messages.close)} icon='times' onClick={onClose} size={16} style={closeStyle} />
  41. <div>
  42. <DetailedStatus status={status} onOpenMedia={this.handleOpenMedia} />
  43. </div>
  44. <div style={buttonContainerStyle}>
  45. <Button text={reblogButton} onClick={this.handleReblog} />
  46. </div>
  47. </div>
  48. );
  49. }
  50. });
  51. export default injectIntl(BoostModal);