|
|
@ -1,19 +1,17 @@ |
|
|
|
import React from 'react'; |
|
|
|
import { connect } from 'react-redux'; |
|
|
|
import { changeReportComment, submitReport } from '../../actions/reports'; |
|
|
|
import { refreshAccountTimeline } from '../../actions/timelines'; |
|
|
|
import { changeReportComment, submitReport } from '../../../actions/reports'; |
|
|
|
import { refreshAccountTimeline } from '../../../actions/timelines'; |
|
|
|
import PropTypes from 'prop-types'; |
|
|
|
import ImmutablePropTypes from 'react-immutable-proptypes'; |
|
|
|
import Column from '../ui/components/column'; |
|
|
|
import Button from '../../components/button'; |
|
|
|
import { makeGetAccount } from '../../selectors'; |
|
|
|
import { makeGetAccount } from '../../../selectors'; |
|
|
|
import { defineMessages, FormattedMessage, injectIntl } from 'react-intl'; |
|
|
|
import StatusCheckBox from './containers/status_check_box_container'; |
|
|
|
import StatusCheckBox from '../../report/containers/status_check_box_container'; |
|
|
|
import Immutable from 'immutable'; |
|
|
|
import ColumnBackButtonSlim from '../../components/column_back_button_slim'; |
|
|
|
import ImmutablePureComponent from 'react-immutable-pure-component'; |
|
|
|
import Button from '../../../components/button'; |
|
|
|
|
|
|
|
const messages = defineMessages({ |
|
|
|
heading: { id: 'report.heading', defaultMessage: 'New report' }, |
|
|
|
placeholder: { id: 'report.placeholder', defaultMessage: 'Additional comments' }, |
|
|
|
submit: { id: 'report.submit', defaultMessage: 'Submit' }, |
|
|
|
}); |
|
|
@ -37,11 +35,7 @@ const makeMapStateToProps = () => { |
|
|
|
|
|
|
|
@connect(makeMapStateToProps) |
|
|
|
@injectIntl |
|
|
|
export default class Report extends React.PureComponent { |
|
|
|
|
|
|
|
static contextTypes = { |
|
|
|
router: PropTypes.object, |
|
|
|
}; |
|
|
|
export default class ReportModal extends ImmutablePureComponent { |
|
|
|
|
|
|
|
static propTypes = { |
|
|
|
isSubmitting: PropTypes.bool, |
|
|
@ -52,17 +46,15 @@ export default class Report extends React.PureComponent { |
|
|
|
intl: PropTypes.object.isRequired, |
|
|
|
}; |
|
|
|
|
|
|
|
componentWillMount () { |
|
|
|
if (!this.props.account) { |
|
|
|
this.context.router.history.replace('/'); |
|
|
|
} |
|
|
|
handleCommentChange = (e) => { |
|
|
|
this.props.dispatch(changeReportComment(e.target.value)); |
|
|
|
} |
|
|
|
|
|
|
|
componentDidMount () { |
|
|
|
if (!this.props.account) { |
|
|
|
return; |
|
|
|
} |
|
|
|
handleSubmit = () => { |
|
|
|
this.props.dispatch(submitReport()); |
|
|
|
} |
|
|
|
|
|
|
|
componentDidMount () { |
|
|
|
this.props.dispatch(refreshAccountTimeline(this.props.account.get('id'))); |
|
|
|
} |
|
|
|
|
|
|
@ -72,15 +64,6 @@ export default class Report extends React.PureComponent { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
handleCommentChange = (e) => { |
|
|
|
this.props.dispatch(changeReportComment(e.target.value)); |
|
|
|
} |
|
|
|
|
|
|
|
handleSubmit = () => { |
|
|
|
this.props.dispatch(submitReport()); |
|
|
|
this.context.router.history.replace('/'); |
|
|
|
} |
|
|
|
|
|
|
|
render () { |
|
|
|
const { account, comment, intl, statusIds, isSubmitting } = this.props; |
|
|
|
|
|
|
@ -89,36 +72,33 @@ export default class Report extends React.PureComponent { |
|
|
|
} |
|
|
|
|
|
|
|
return ( |
|
|
|
<Column heading={intl.formatMessage(messages.heading)} icon='flag'> |
|
|
|
<ColumnBackButtonSlim /> |
|
|
|
|
|
|
|
<div className='report scrollable'> |
|
|
|
<div className='report__target'> |
|
|
|
<FormattedMessage id='report.target' defaultMessage='Reporting' /> |
|
|
|
<strong>{account.get('acct')}</strong> |
|
|
|
</div> |
|
|
|
<div className='modal-root__modal report-modal'> |
|
|
|
<div className='report-modal__target'> |
|
|
|
<FormattedMessage id='report.target' defaultMessage='Report {target}' values={{ target: <strong>{account.get('acct')}</strong> }} /> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div className='scrollable report__statuses'> |
|
|
|
<div className='report-modal__container'> |
|
|
|
<div className='report-modal__statuses'> |
|
|
|
<div> |
|
|
|
{statusIds.map(statusId => <StatusCheckBox id={statusId} key={statusId} disabled={isSubmitting} />)} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div className='report__textarea-wrapper'> |
|
|
|
<div className='report-modal__comment'> |
|
|
|
<textarea |
|
|
|
className='report__textarea' |
|
|
|
className='setting-text light' |
|
|
|
placeholder={intl.formatMessage(messages.placeholder)} |
|
|
|
value={comment} |
|
|
|
onChange={this.handleCommentChange} |
|
|
|
disabled={isSubmitting} |
|
|
|
/> |
|
|
|
|
|
|
|
<div className='report__submit'> |
|
|
|
<div className='report__submit-button'><Button disabled={isSubmitting} text={intl.formatMessage(messages.submit)} onClick={this.handleSubmit} /></div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</Column> |
|
|
|
|
|
|
|
<div className='report-modal__action-bar'> |
|
|
|
<Button disabled={isSubmitting} text={intl.formatMessage(messages.submit)} onClick={this.handleSubmit} /> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
); |
|
|
|
} |
|
|
|
|