aboutsummaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
Diffstat (limited to 'web')
-rw-r--r--web/src/js/components/Modal/Modal.jsx33
-rw-r--r--web/src/js/components/Modal/ModalList.jsx3
-rw-r--r--web/src/js/components/Modal/OptionModal.jsx33
3 files changed, 69 insertions, 0 deletions
diff --git a/web/src/js/components/Modal/Modal.jsx b/web/src/js/components/Modal/Modal.jsx
new file mode 100644
index 00000000..3370ad36
--- /dev/null
+++ b/web/src/js/components/Modal/Modal.jsx
@@ -0,0 +1,33 @@
+import React, { Component } from 'react'
+import { connect } from 'react-redux'
+import * as modalAction from '../../ducks/ui/modal'
+import ModalList from './ModalList'
+
+class PureModal extends Component {
+
+ constructor(props, context) {
+ super(props, context)
+ }
+
+ render() {
+ const { activeModal, hideModal } = this.props
+ const ActiveModal = _.find(ModalList, m => m.name === activeModal )
+ return(
+ activeModal ?
+ <div>
+ <div className="modal-backdrop fade in"></div>
+ <ActiveModal hideModal={ hideModal }/>
+ </div>
+ : <div/>
+ )
+ }
+}
+
+export default connect(
+ state => ({
+ activeModal: state.ui.modal.activeModal
+ }),
+ {
+ hideModal: modalAction.hideModal
+ }
+)(PureModal)
diff --git a/web/src/js/components/Modal/ModalList.jsx b/web/src/js/components/Modal/ModalList.jsx
new file mode 100644
index 00000000..41b36f00
--- /dev/null
+++ b/web/src/js/components/Modal/ModalList.jsx
@@ -0,0 +1,3 @@
+import OptionModal from './OptionModal'
+
+export default [ OptionModal, EmptyModal ]
diff --git a/web/src/js/components/Modal/OptionModal.jsx b/web/src/js/components/Modal/OptionModal.jsx
new file mode 100644
index 00000000..d9e8b829
--- /dev/null
+++ b/web/src/js/components/Modal/OptionModal.jsx
@@ -0,0 +1,33 @@
+import React from 'react'
+import PropTypes from 'prop-types'
+
+OptionModal.prototype = {
+ hideModal: PropTypes.function,
+}
+
+export default function OptionModal( { hideModal }) {
+ const title = 'Options'
+ return (
+ <div className="modal modal-visible" id="optionsModal" tabIndex="-1" role="dialog" aria-labelledby="options">
+ <div className="modal-dialog modal-lg" role="document">
+ <div className="modal-content">
+ <div className="modal-header">
+ <button type="button" className="close" data-dismiss="modal" onClick={() => { hideModal() }}>
+ <i className="fa fa-fw fa-times"></i>
+ </button>
+ <div className="modal-title">
+ <h4>{ title }</h4>
+ </div>
+ </div>
+
+ <div className="modal-body">
+ </div>
+
+ <div className="modal-footer">
+ <button type="button" className="btn btn-primary">Save Changes</button>
+ </div>
+ </div>
+ </div>
+ </div>
+ )
+}