summaryrefslogtreecommitdiff
path: root/src/components/modals/Modal.js
diff options
context:
space:
mode:
authorGeorgios Andreadis <g.andreadis@student.tudelft.nl>2017-10-04 22:49:07 +0200
committerGeorgios Andreadis <g.andreadis@student.tudelft.nl>2017-10-04 22:49:25 +0200
commit751a9ef3a12c952fe179f256d854d0c4aa37e28e (patch)
tree241fc22c592a277526e73cc70ea0f95d5a8a7b29 /src/components/modals/Modal.js
parent9257d89ec2e22b65ffecc7dc7cf67b7a74c34d60 (diff)
Apply prettier to codebase
Diffstat (limited to 'src/components/modals/Modal.js')
-rw-r--r--src/components/modals/Modal.js203
1 files changed, 108 insertions, 95 deletions
diff --git a/src/components/modals/Modal.js b/src/components/modals/Modal.js
index 1de17455..367cf2da 100644
--- a/src/components/modals/Modal.js
+++ b/src/components/modals/Modal.js
@@ -4,116 +4,129 @@ import React from "react";
import jQuery from "../../util/jquery";
class Modal extends React.Component {
- static propTypes = {
- title: PropTypes.string.isRequired,
- show: PropTypes.bool.isRequired,
- onSubmit: PropTypes.func.isRequired,
- onCancel: PropTypes.func.isRequired,
- submitButtonType: PropTypes.string,
- submitButtonText: PropTypes.string,
- };
- static defaultProps = {
- submitButtonType: "primary",
- submitButtonText: "Save",
- };
- static idCounter = 0;
+ static propTypes = {
+ title: PropTypes.string.isRequired,
+ show: PropTypes.bool.isRequired,
+ onSubmit: PropTypes.func.isRequired,
+ onCancel: PropTypes.func.isRequired,
+ submitButtonType: PropTypes.string,
+ submitButtonText: PropTypes.string
+ };
+ static defaultProps = {
+ submitButtonType: "primary",
+ submitButtonText: "Save"
+ };
+ static idCounter = 0;
- /**
- * Local, up-to-date copy of modal visibility for time between close event and a props update (to prevent duplicate
- * close triggers).
- */
- visible = false;
+ // Local, up-to-date copy of modal visibility for time between close event and a props update (to prevent duplicate
+ // 'close' triggers)
+ visible = false;
- constructor() {
- super();
- this.id = "modal-" + Modal.idCounter++;
- }
-
- componentDidMount() {
- this.visible = this.props.show;
- this.openOrCloseModal();
-
- // Trigger auto-focus
- jQuery("#" + this.id)
- .on("shown.bs.modal", function () {
- jQuery(this).find("input").first().focus();
- })
- .on("hide.bs.modal", () => {
- if (this.visible) {
- this.props.onCancel();
- }
- })
- .on("keydown", e => {
- e.stopPropagation();
- });
- }
+ constructor() {
+ super();
+ this.id = "modal-" + Modal.idCounter++;
+ }
- componentDidUpdate() {
- this.visible = this.props.show;
- this.openOrCloseModal();
- }
+ componentDidMount() {
+ this.visible = this.props.show;
+ this.openOrCloseModal();
- onSubmit() {
+ // Trigger auto-focus
+ jQuery("#" + this.id)
+ .on("shown.bs.modal", function() {
+ jQuery(this)
+ .find("input")
+ .first()
+ .focus();
+ })
+ .on("hide.bs.modal", () => {
if (this.visible) {
- this.props.onSubmit();
- this.visible = false;
- this.closeModal();
+ this.props.onCancel();
}
- }
+ })
+ .on("keydown", e => {
+ e.stopPropagation();
+ });
+ }
- onCancel() {
- if (this.visible) {
- this.props.onCancel();
- this.visible = false;
- this.closeModal();
- }
- }
+ componentDidUpdate() {
+ this.visible = this.props.show;
+ this.openOrCloseModal();
+ }
- openModal() {
- jQuery("#" + this.id).modal("show");
+ onSubmit() {
+ if (this.visible) {
+ this.props.onSubmit();
+ this.visible = false;
+ this.closeModal();
}
+ }
- closeModal() {
- jQuery("#" + this.id).modal("hide");
+ onCancel() {
+ if (this.visible) {
+ this.props.onCancel();
+ this.visible = false;
+ this.closeModal();
}
+ }
- openOrCloseModal() {
- if (this.visible) {
- this.openModal();
- } else {
- this.closeModal();
- }
+ openModal() {
+ jQuery("#" + this.id).modal("show");
+ }
+
+ closeModal() {
+ jQuery("#" + this.id).modal("hide");
+ }
+
+ openOrCloseModal() {
+ if (this.visible) {
+ this.openModal();
+ } else {
+ this.closeModal();
}
+ }
- render() {
- return (
- <div className="modal fade" id={this.id} role="dialog">
- <div className="modal-dialog" role="document">
- <div className="modal-content">
- <div className="modal-header">
- <h5 className="modal-title">{this.props.title}</h5>
- <button type="button" className="close" onClick={this.onCancel.bind(this)}
- aria-label="Close">
- <span>&times;</span>
- </button>
- </div>
- <div className="modal-body">
- {this.props.children}
- </div>
- <div className="modal-footer">
- <button type="button" className="btn btn-secondary" onClick={this.onCancel.bind(this)}>
- Close
- </button>
- <button type="button" className={classNames("btn", "btn-" + this.props.submitButtonType)}
- onClick={this.onSubmit.bind(this)}>
- {this.props.submitButtonText}
- </button>
- </div>
- </div>
- </div>
+ render() {
+ return (
+ <div className="modal fade" id={this.id} role="dialog">
+ <div className="modal-dialog" role="document">
+ <div className="modal-content">
+ <div className="modal-header">
+ <h5 className="modal-title">{this.props.title}</h5>
+ <button
+ type="button"
+ className="close"
+ onClick={this.onCancel.bind(this)}
+ aria-label="Close"
+ >
+ <span>&times;</span>
+ </button>
</div>
- );
- }
+ <div className="modal-body">{this.props.children}</div>
+ <div className="modal-footer">
+ <button
+ type="button"
+ className="btn btn-secondary"
+ onClick={this.onCancel.bind(this)}
+ >
+ Close
+ </button>
+ <button
+ type="button"
+ className={classNames(
+ "btn",
+ "btn-" + this.props.submitButtonType
+ )}
+ onClick={this.onSubmit.bind(this)}
+ >
+ {this.props.submitButtonText}
+ </button>
+ </div>
+ </div>
+ </div>
+ </div>
+ );
+ }
}
export default Modal;