summaryrefslogtreecommitdiffstats
path: root/webapp/components/confirm_modal.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/components/confirm_modal.jsx')
-rw-r--r--webapp/components/confirm_modal.jsx69
1 files changed, 69 insertions, 0 deletions
diff --git a/webapp/components/confirm_modal.jsx b/webapp/components/confirm_modal.jsx
new file mode 100644
index 000000000..ef91b5ec0
--- /dev/null
+++ b/webapp/components/confirm_modal.jsx
@@ -0,0 +1,69 @@
+// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+import {FormattedMessage} from 'react-intl';
+import {Modal} from 'react-bootstrap';
+
+import React from 'react';
+
+export default class ConfirmModal extends React.Component {
+ constructor(props) {
+ super(props);
+
+ this.handleConfirm = this.handleConfirm.bind(this);
+ }
+
+ handleConfirm() {
+ this.props.onConfirm();
+ }
+
+ render() {
+ return (
+ <Modal
+ className='modal-confirm'
+ show={this.props.show}
+ onHide={this.props.onCancel}
+ >
+ <Modal.Header closeButton={false}>
+ <Modal.Title>{this.props.title}</Modal.Title>
+ </Modal.Header>
+ <Modal.Body>
+ {this.props.message}
+ </Modal.Body>
+ <Modal.Footer>
+ <button
+ type='button'
+ className='btn btn-default'
+ onClick={this.props.onCancel}
+ >
+ <FormattedMessage
+ id='confirm_modal.cancel'
+ defaultMessage='Cancel'
+ />
+ </button>
+ <button
+ type='button'
+ className='btn btn-primary'
+ onClick={this.props.onConfirm}
+ >
+ {this.props.confirmButton}
+ </button>
+ </Modal.Footer>
+ </Modal>
+ );
+ }
+}
+
+ConfirmModal.defaultProps = {
+ title: '',
+ message: '',
+ confirmButton: ''
+};
+ConfirmModal.propTypes = {
+ show: React.PropTypes.bool.isRequired,
+ title: React.PropTypes.node,
+ message: React.PropTypes.node,
+ confirmButton: React.PropTypes.node,
+ onConfirm: React.PropTypes.func.isRequired,
+ onCancel: React.PropTypes.func.isRequired
+};