aboutsummaryrefslogtreecommitdiffstats
path: root/web/src
diff options
context:
space:
mode:
authorMatthew Shao <me@matshao.com>2017-07-21 22:58:20 +0800
committerMatthew Shao <me@matshao.com>2017-07-21 22:58:20 +0800
commit663e6026fbbf0ce1c1e96d2dd5b46dcda9bb3e06 (patch)
treecc1af76cc00fe90af40df4a9bfcd4199aa62688e /web/src
parente1d0bc6de975c377cb42022209ea1b5bce515433 (diff)
downloadmitmproxy-663e6026fbbf0ce1c1e96d2dd5b46dcda9bb3e06.tar.gz
mitmproxy-663e6026fbbf0ce1c1e96d2dd5b46dcda9bb3e06.tar.bz2
mitmproxy-663e6026fbbf0ce1c1e96d2dd5b46dcda9bb3e06.zip
[web] Add default value suggester in option editor.
Diffstat (limited to 'web/src')
-rw-r--r--web/src/js/components/Modal/OptionModal.jsx27
1 files changed, 27 insertions, 0 deletions
diff --git a/web/src/js/components/Modal/OptionModal.jsx b/web/src/js/components/Modal/OptionModal.jsx
index 5741ee8c..2a95f43b 100644
--- a/web/src/js/components/Modal/OptionModal.jsx
+++ b/web/src/js/components/Modal/OptionModal.jsx
@@ -2,6 +2,7 @@ import React, { Component } from "react"
import { connect } from "react-redux"
import * as modalAction from "../../ducks/ui/modal"
import Option from "./Option"
+import _ from "lodash"
function PureOptionHelp({help}){
return <div className="help-block small">{help}</div>;
@@ -18,6 +19,31 @@ const OptionError = connect((state, {name}) => ({
error: state.ui.optionsEditor[name] && state.ui.optionsEditor[name].error
}))(PureOptionError);
+function PureOptionDefault({value, defaultVal}){
+ if( value === defaultVal ) {
+ return null
+ } else {
+ if (typeof(defaultVal) === 'boolean') {
+ defaultVal = defaultVal ? 'true' : 'false'
+ } else if (Array.isArray(defaultVal)){
+ if (_.isEmpty(_.compact(value)) && // filter the empty string in array
+ _.isEmpty(defaultVal)){
+ return null
+ }
+ defaultVal = '[ ]'
+ } else if (defaultVal === ''){
+ defaultVal = '\"\"'
+ } else if (defaultVal === null){
+ defaultVal = 'null'
+ }
+ return <div className="small">Default: <strong> {defaultVal} </strong> </div>
+ }
+}
+const OptionDefault = connect((state, {name}) => ({
+ value: state.options[name].value,
+ defaultVal: state.options[name].default
+}))(PureOptionDefault)
+
class PureOptionModal extends Component {
constructor(props, context) {
@@ -53,6 +79,7 @@ class PureOptionModal extends Component {
<div className="col-xs-6">
<Option name={name}/>
<OptionError name={name}/>
+ <OptionDefault name={name}/>
</div>
</div>
)