}
handleBlockClick = () => {
- this.props.onBlock(this.props.status.get('account'));
+ this.props.onBlock(this.props.status);
}
handleOpen = () => {
blockConfirm: { id: 'confirmations.block.confirm', defaultMessage: 'Block' },
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?' },
+ blockAndReport: { id: 'confirmations.block.block_and_report', defaultMessage: 'Block & Report' },
});
const makeMapStateToProps = () => {
dispatch(openModal('VIDEO', { media, time }));
},
- onBlock (account) {
+ onBlock (status) {
+ const account = status.get('account');
dispatch(openModal('CONFIRM', {
message: <FormattedMessage id='confirmations.block.message' defaultMessage='Are you sure you want to block {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,
confirm: intl.formatMessage(messages.blockConfirm),
onConfirm: () => dispatch(blockAccount(account.get('id'))),
+ secondary: intl.formatMessage(messages.blockAndReport),
+ onSecondary: () => {
+ dispatch(blockAccount(account.get('id')));
+ dispatch(initReport(account, status));
+ },
}));
},
unfollowConfirm: { id: 'confirmations.unfollow.confirm', defaultMessage: 'Unfollow' },
blockConfirm: { id: 'confirmations.block.confirm', defaultMessage: 'Block' },
blockDomainConfirm: { id: 'confirmations.domain_block.confirm', defaultMessage: 'Hide entire domain' },
+ blockAndReport: { id: 'confirmations.block.block_and_report', defaultMessage: 'Block & Report' },
});
const makeMapStateToProps = () => {
message: <FormattedMessage id='confirmations.block.message' defaultMessage='Are you sure you want to block {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,
confirm: intl.formatMessage(messages.blockConfirm),
onConfirm: () => dispatch(blockAccount(account.get('id'))),
+ secondary: intl.formatMessage(messages.blockAndReport),
+ onSecondary: () => {
+ dispatch(blockAccount(account.get('id')));
+ dispatch(initReport(account));
+ },
}));
}
},
}
handleBlockClick = () => {
- this.props.onBlock(this.props.status.get('account'));
+ this.props.onBlock(this.props.status);
}
handleReport = () => {
blockConfirm: { id: 'confirmations.block.confirm', defaultMessage: 'Block' },
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?' },
+ blockAndReport: { id: 'confirmations.block.block_and_report', defaultMessage: 'Block & Report' },
});
const makeMapStateToProps = () => {
dispatch(openModal('VIDEO', { media, time }));
},
- onBlock (account) {
+ onBlock (status) {
+ const account = status.get('account');
dispatch(openModal('CONFIRM', {
message: <FormattedMessage id='confirmations.block.message' defaultMessage='Are you sure you want to block {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,
confirm: intl.formatMessage(messages.blockConfirm),
onConfirm: () => dispatch(blockAccount(account.get('id'))),
+ secondary: intl.formatMessage(messages.blockAndReport),
+ onSecondary: () => {
+ dispatch(blockAccount(account.get('id')));
+ dispatch(initReport(account, status));
+ },
}));
},
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?' },
+ blockAndReport: { id: 'confirmations.block.block_and_report', defaultMessage: 'Block & Report' },
});
const makeMapStateToProps = () => {
}
}
- handleBlockClick = (account) => {
+ handleBlockClick = (status) => {
const { dispatch, intl } = this.props;
+ const account = status.get('account');
dispatch(openModal('CONFIRM', {
message: <FormattedMessage id='confirmations.block.message' defaultMessage='Are you sure you want to block {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,
confirm: intl.formatMessage(messages.blockConfirm),
onConfirm: () => dispatch(blockAccount(account.get('id'))),
+ secondary: intl.formatMessage(messages.blockAndReport),
+ onSecondary: () => {
+ dispatch(blockAccount(account.get('id')));
+ dispatch(initReport(account, status));
+ },
}));
}
confirm: PropTypes.string.isRequired,
onClose: PropTypes.func.isRequired,
onConfirm: PropTypes.func.isRequired,
+ secondary: PropTypes.string,
+ onSecondary: PropTypes.func,
intl: PropTypes.object.isRequired,
};
this.props.onConfirm();
}
+ handleSecondary = () => {
+ this.props.onClose();
+ this.props.onSecondary();
+ }
+
handleCancel = () => {
this.props.onClose();
}
}
render () {
- const { message, confirm } = this.props;
+ const { message, confirm, secondary } = this.props;
return (
<div className='modal-root__modal confirmation-modal'>
<Button onClick={this.handleCancel} className='confirmation-modal__cancel-button'>
<FormattedMessage id='confirmation_modal.cancel' defaultMessage='Cancel' />
</Button>
+ {secondary !== undefined && (
+ <Button text={secondary} onClick={this.handleSecondary} className='confirmation-modal__secondary-button' />
+ )}
<Button text={confirm} onClick={this.handleClick} ref={this.setRef} />
</div>
</div>
.confirmation-modal__action-bar,
.mute-modal__action-bar {
+ .confirmation-modal__secondary-button,
.confirmation-modal__cancel-button,
.mute-modal__cancel-button {
background-color: transparent;