diff options
author | Jason <jason.daurus@gmail.com> | 2016-06-17 21:58:24 +0800 |
---|---|---|
committer | Jason <jason.daurus@gmail.com> | 2016-06-17 21:58:24 +0800 |
commit | c82d27b2a215c075dba71254cafdc86e98e0f2d9 (patch) | |
tree | 84324135951cf67617e4887923bee0627c1d1085 /web/src/js/components/common/ToggleInputButton.jsx | |
parent | 6ad2f13341208b8460eae0dd0105c3109e773bae (diff) | |
parent | 9c6199db9be34fad18eaedb86463333671ae190a (diff) | |
download | mitmproxy-c82d27b2a215c075dba71254cafdc86e98e0f2d9.tar.gz mitmproxy-c82d27b2a215c075dba71254cafdc86e98e0f2d9.tar.bz2 mitmproxy-c82d27b2a215c075dba71254cafdc86e98e0f2d9.zip |
Merge branch 'master' into settings
Conflicts:
mitmproxy/web/static/app.css
mitmproxy/web/static/app.js
web/src/js/components/ProxyApp.jsx
Diffstat (limited to 'web/src/js/components/common/ToggleInputButton.jsx')
-rw-r--r-- | web/src/js/components/common/ToggleInputButton.jsx | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/web/src/js/components/common/ToggleInputButton.jsx b/web/src/js/components/common/ToggleInputButton.jsx new file mode 100644 index 00000000..25d620ae --- /dev/null +++ b/web/src/js/components/common/ToggleInputButton.jsx @@ -0,0 +1,52 @@ +import React, { Component, PropTypes } from 'react' +import classnames from 'classnames' +import { Key } from '../../utils' + +export default class ToggleInputButton extends Component { + + static propTypes = { + name: PropTypes.string.isRequired, + txt: PropTypes.string.isRequired, + onToggleChanged: PropTypes.func.isRequired + } + + constructor(props) { + super(props) + this.state = { txt: props.txt } + } + + onChange(e) { + this.setState({ txt: e.target.value }) + } + + onKeyDown(e) { + e.stopPropagation() + if (e.keyCode === Key.ENTER) { + this.props.onToggleChanged(this.state.txt) + } + } + + render() { + return ( + <div className="input-group toggle-input-btn"> + <span className="input-group-btn" + onClick={() => this.props.onToggleChanged(this.state.txt)}> + <div className={classnames('btn', this.props.checked ? 'btn-primary' : 'btn-default')}> + <span className={classnames('fa', this.props.checked ? 'fa-check-square-o' : 'fa-square-o')}/> + + {this.props.name} + </div> + </span> + <input + className="form-control" + placeholder={this.props.placeholder} + disabled={this.props.checked} + value={this.state.txt} + type={this.props.inputType} + onChange={e => this.onChange(e)} + onKeyDown={e => this.onKeyDown(e)} + /> + </div> + ) + } +} |