diff options
Diffstat (limited to 'web/src/js/components/common/ToggleInputButton.jsx')
-rw-r--r-- | web/src/js/components/common/ToggleInputButton.jsx | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/web/src/js/components/common/ToggleInputButton.jsx b/web/src/js/components/common/ToggleInputButton.jsx index 25d620ae..5fa24c10 100644 --- a/web/src/js/components/common/ToggleInputButton.jsx +++ b/web/src/js/components/common/ToggleInputButton.jsx @@ -6,17 +6,16 @@ export default class ToggleInputButton extends Component { static propTypes = { name: PropTypes.string.isRequired, - txt: PropTypes.string.isRequired, - onToggleChanged: PropTypes.func.isRequired + txt: PropTypes.string, + onToggleChanged: PropTypes.func.isRequired, + checked: PropTypes.bool.isRequired, + placeholder: PropTypes.string.isRequired, + inputType: PropTypes.string } constructor(props) { super(props) - this.state = { txt: props.txt } - } - - onChange(e) { - this.setState({ txt: e.target.value }) + this.state = { txt: props.txt || '' } } onKeyDown(e) { @@ -27,23 +26,24 @@ export default class ToggleInputButton extends Component { } render() { + const {checked, onToggleChanged, name, inputType, placeholder} = this.props 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')}/> + onClick={() => onToggleChanged(this.state.txt)}> + <div className={classnames('btn', checked ? 'btn-primary' : 'btn-default')}> + <span className={classnames('fa', checked ? 'fa-check-square-o' : 'fa-square-o')}/> - {this.props.name} + {name} </div> </span> <input className="form-control" - placeholder={this.props.placeholder} - disabled={this.props.checked} + placeholder={placeholder} + disabled={checked} value={this.state.txt} - type={this.props.inputType} - onChange={e => this.onChange(e)} + type={inputType || 'text'} + onChange={e => this.setState({ txt: e.target.value })} onKeyDown={e => this.onKeyDown(e)} /> </div> |