diff options
author | Ryan Wang <R-Wang97@users.noreply.github.com> | 2017-04-25 12:34:21 -0400 |
---|---|---|
committer | Corey Hulen <corey@hulen.com> | 2017-04-25 09:34:21 -0700 |
commit | f1668bad15d27e6e2b40e5079f0b878603b33684 (patch) | |
tree | 5a5852f301ae1f31238bd6f5d6a95322b001354f /webapp/components/confirm_modal.jsx | |
parent | 6c4c706313eb765eb00c639f381646be74f27b69 (diff) | |
download | chat-f1668bad15d27e6e2b40e5079f0b878603b33684.tar.gz chat-f1668bad15d27e6e2b40e5079f0b878603b33684.tar.bz2 chat-f1668bad15d27e6e2b40e5079f0b878603b33684.zip |
Add confirm dialog before leaving private channel (#6206)
Diffstat (limited to 'webapp/components/confirm_modal.jsx')
-rw-r--r-- | webapp/components/confirm_modal.jsx | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/webapp/components/confirm_modal.jsx b/webapp/components/confirm_modal.jsx index 8034caf9d..05288e3ac 100644 --- a/webapp/components/confirm_modal.jsx +++ b/webapp/components/confirm_modal.jsx @@ -10,11 +10,21 @@ export default class ConfirmModal extends React.Component { constructor(props) { super(props); - this.handleConfirm = this.handleConfirm.bind(this); + this.handleKeypress = this.handleKeypress.bind(this); } - handleConfirm() { - this.props.onConfirm(); + componentDidMount() { + document.addEventListener('keypress', this.handleKeypress); + } + + componentWillUnmount() { + document.removeEventListener('keypress', this.handleKeypress); + } + + handleKeypress(e) { + if (e.key === 'Enter' && this.props.show) { + this.props.onConfirm(); + } } render() { @@ -43,7 +53,7 @@ export default class ConfirmModal extends React.Component { </button> <button type='button' - className='btn btn-primary' + className={this.props.confirmButtonClass} onClick={this.props.onConfirm} > {this.props.confirmButton} @@ -57,12 +67,14 @@ export default class ConfirmModal extends React.Component { ConfirmModal.defaultProps = { title: '', message: '', + confirmButtonClass: 'btn btn-primary', confirmButton: '' }; ConfirmModal.propTypes = { show: React.PropTypes.bool.isRequired, title: React.PropTypes.node, message: React.PropTypes.node, + confirmButtonClass: React.PropTypes.string, confirmButton: React.PropTypes.node, onConfirm: React.PropTypes.func.isRequired, onCancel: React.PropTypes.func.isRequired |