Add a confirmation dialog when hitting reply and the compose box isn't empty (#8893)
* Add a confirmation dialog when hitting reply and the compose box isn't empty Fixes #878 * Performance improvement
This commit is contained in:
		@@ -54,6 +54,8 @@ const messages = defineMessages({
 | 
			
		||||
  revealAll: { id: 'status.show_more_all', defaultMessage: 'Show more for all' },
 | 
			
		||||
  hideAll: { id: 'status.show_less_all', defaultMessage: 'Show less for all' },
 | 
			
		||||
  detailedStatus: { id: 'status.detailed_status', defaultMessage: 'Detailed conversation view' },
 | 
			
		||||
  replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' },
 | 
			
		||||
  replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' },
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const makeMapStateToProps = () => {
 | 
			
		||||
@@ -98,6 +100,7 @@ const makeMapStateToProps = () => {
 | 
			
		||||
      status,
 | 
			
		||||
      ancestorsIds,
 | 
			
		||||
      descendantsIds,
 | 
			
		||||
      askReplyConfirmation: state.getIn(['compose', 'text']).trim().length !== 0,
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
@@ -119,6 +122,7 @@ class Status extends ImmutablePureComponent {
 | 
			
		||||
    ancestorsIds: ImmutablePropTypes.list,
 | 
			
		||||
    descendantsIds: ImmutablePropTypes.list,
 | 
			
		||||
    intl: PropTypes.object.isRequired,
 | 
			
		||||
    askReplyConfirmation: PropTypes.bool,
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  state = {
 | 
			
		||||
@@ -157,7 +161,16 @@ class Status extends ImmutablePureComponent {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  handleReplyClick = (status) => {
 | 
			
		||||
    this.props.dispatch(replyCompose(status, this.context.router.history));
 | 
			
		||||
    let { askReplyConfirmation, dispatch, intl } = this.props;
 | 
			
		||||
    if (askReplyConfirmation) {
 | 
			
		||||
      dispatch(openModal('CONFIRM', {
 | 
			
		||||
        message: intl.formatMessage(messages.replyMessage),
 | 
			
		||||
        confirm: intl.formatMessage(messages.replyConfirm),
 | 
			
		||||
        onConfirm: () => dispatch(replyCompose(status, this.context.router.history)),
 | 
			
		||||
      }));
 | 
			
		||||
    } else {
 | 
			
		||||
      dispatch(replyCompose(status, this.context.router.history));
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  handleModalReblog = (status) => {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user