62 lines
1.3 KiB
JavaScript
62 lines
1.3 KiB
JavaScript
import React, {Component, PropTypes} from 'react'
|
|
|
|
class RedactedInput extends Component {
|
|
constructor(props) {
|
|
super(props)
|
|
this.state = {
|
|
editing: false,
|
|
}
|
|
}
|
|
|
|
handleClick = () => {
|
|
this.setState({editing: true})
|
|
}
|
|
|
|
render() {
|
|
const {defaultValue, id, refFunc, disableTest} = this.props
|
|
const {editing} = this.state
|
|
|
|
if (defaultValue === true && !editing) {
|
|
return (
|
|
<div className="form-control-static redacted-input">
|
|
<span className="alert-value-set">
|
|
<span className="icon checkmark" /> Value set
|
|
</span>
|
|
<button className="btn btn-xs btn-link" onClick={this.handleClick}>
|
|
Change
|
|
</button>
|
|
<input
|
|
className="form-control"
|
|
id={id}
|
|
type="hidden"
|
|
ref={refFunc}
|
|
defaultValue={defaultValue}
|
|
/>
|
|
</div>
|
|
)
|
|
}
|
|
|
|
return (
|
|
<input
|
|
className="form-control"
|
|
id={id}
|
|
type="text"
|
|
ref={refFunc}
|
|
defaultValue={''}
|
|
onChange={disableTest}
|
|
/>
|
|
)
|
|
}
|
|
}
|
|
|
|
const {bool, func, string} = PropTypes
|
|
|
|
RedactedInput.propTypes = {
|
|
id: string.isRequired,
|
|
defaultValue: bool,
|
|
refFunc: func.isRequired,
|
|
disableTest: func,
|
|
}
|
|
|
|
export default RedactedInput
|