diff options
author | Matthew Shao <me@matshao.com> | 2017-07-18 09:14:28 +0800 |
---|---|---|
committer | Matthew Shao <me@matshao.com> | 2017-07-18 09:14:28 +0800 |
commit | 70bb123101fa59f3f60bdca254cdbdd3e89de568 (patch) | |
tree | 615cbced0443a60f9fa62b9544a40edd1b64ce2d /web/src/js/components/Modal/OptionModal.jsx | |
parent | 4a02822b346c3aed361c77bb714903a59ac6935e (diff) | |
parent | 183079f7312dc812d7b70a01e490ef3827b2890c (diff) | |
download | mitmproxy-70bb123101fa59f3f60bdca254cdbdd3e89de568.tar.gz mitmproxy-70bb123101fa59f3f60bdca254cdbdd3e89de568.tar.bz2 mitmproxy-70bb123101fa59f3f60bdca254cdbdd3e89de568.zip |
Merge branch 'mitmweb-options' of https://github.com/MatthewShao/mitmproxy into mitmweb-options
Diffstat (limited to 'web/src/js/components/Modal/OptionModal.jsx')
-rw-r--r-- | web/src/js/components/Modal/OptionModal.jsx | 53 |
1 files changed, 35 insertions, 18 deletions
diff --git a/web/src/js/components/Modal/OptionModal.jsx b/web/src/js/components/Modal/OptionModal.jsx index a4dd95d0..9b1b6a8b 100644 --- a/web/src/js/components/Modal/OptionModal.jsx +++ b/web/src/js/components/Modal/OptionModal.jsx @@ -1,7 +1,22 @@ -import React, { Component } from 'react' -import { connect } from 'react-redux' -import * as modalAction from '../../ducks/ui/modal' -import Option from './OptionMaster' +import React, { Component } from "react" +import { connect } from "react-redux" +import * as modalAction from "../../ducks/ui/modal" +import Option from "./Option" + +function PureOptionHelp({help}){ + return <div className="help-block small">{help}</div>; +} +const OptionHelp = connect((state, {name}) => ({ + help: state.options[name].help, +}))(PureOptionHelp); + +function PureOptionError({error}){ + if(!error) return null; + return <div className="small text-danger">{error}</div>; +} +const OptionError = connect((state, {name}) => ({ + error: state.ui.optionsEditor[name] && state.ui.optionsEditor[name].error +}))(PureOptionError); class PureOptionModal extends Component { @@ -27,19 +42,21 @@ class PureOptionModal extends Component { </div> <div className="modal-body"> - <div className="container-fluid"> - { - Object.keys(options).sort() - .map((key, index) => { - let option = options[key]; - return ( - <Option - key={index} - name={key} - option={option} - />) - }) - } + <div className="form-horizontal"> + { + options.map(name => + <div key={name} className="form-group"> + <div className="col-xs-6"> + <label htmlFor={name}>{name}</label> + <OptionHelp name={name}/> + </div> + <div className="col-xs-6"> + <Option name={name}/> + <OptionError name={name}/> + </div> + </div> + ) + } </div> </div> @@ -52,7 +69,7 @@ class PureOptionModal extends Component { export default connect( state => ({ - options: state.options + options: Object.keys(state.options) }), { hideModal: modalAction.hideModal, |