diff options
author | Matthew Shao <me@matshao.com> | 2017-06-28 18:48:31 +0800 |
---|---|---|
committer | Matthew Shao <me@matshao.com> | 2017-06-28 18:48:31 +0800 |
commit | c0ad25715bc050dac0134ccd46f25884396d0f87 (patch) | |
tree | fd3bfba3aaf5eb57ddf39acee505acbfa4644660 /web/src | |
parent | 23a2409a87640c048cb8c9ed297b03c0f9425a37 (diff) | |
download | mitmproxy-c0ad25715bc050dac0134ccd46f25884396d0f87.tar.gz mitmproxy-c0ad25715bc050dac0134ccd46f25884396d0f87.tar.bz2 mitmproxy-c0ad25715bc050dac0134ccd46f25884396d0f87.zip |
[web] Add Modal Component and OptionModal
Diffstat (limited to 'web/src')
-rw-r--r-- | web/src/js/components/Modal/Modal.jsx | 33 | ||||
-rw-r--r-- | web/src/js/components/Modal/ModalList.jsx | 3 | ||||
-rw-r--r-- | web/src/js/components/Modal/OptionModal.jsx | 33 |
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> + ) +} |