Allow text inputs in local settings dialog
This commit is contained in:
parent
9d2739d74d
commit
5c400a2842
|
@ -19,18 +19,20 @@ export default class LocalSettingsPageItem extends React.PureComponent {
|
|||
message: PropTypes.string.isRequired,
|
||||
})),
|
||||
settings: ImmutablePropTypes.map.isRequired,
|
||||
placeholder: PropTypes.string,
|
||||
};
|
||||
|
||||
handleChange = e => {
|
||||
const { target } = e;
|
||||
const { item, onChange, options } = this.props;
|
||||
const { item, onChange, options, placeholder } = this.props;
|
||||
if (options && options.length > 0) onChange(item, target.value);
|
||||
else if (placeholder) onChange(item, target.value);
|
||||
else onChange(item, target.checked);
|
||||
}
|
||||
|
||||
render () {
|
||||
const { handleChange } = this;
|
||||
const { settings, item, id, options, children, dependsOn, dependsOnNot } = this.props;
|
||||
const { settings, item, id, options, children, dependsOn, dependsOnNot, placeholder } = this.props;
|
||||
let enabled = true;
|
||||
|
||||
if (dependsOn) {
|
||||
|
@ -70,6 +72,22 @@ export default class LocalSettingsPageItem extends React.PureComponent {
|
|||
</p>
|
||||
</label>
|
||||
);
|
||||
} else if (placeholder) {
|
||||
return (
|
||||
<label className='glitch local-settings__page__item' htmlFor={id}>
|
||||
<p>{children}</p>
|
||||
<p>
|
||||
<input
|
||||
id={id}
|
||||
type='text'
|
||||
value={settings.getIn(item)}
|
||||
placeholder={placeholder}
|
||||
onChange={handleChange}
|
||||
disabled={!enabled}
|
||||
/>
|
||||
</p>
|
||||
</label>
|
||||
);
|
||||
} else return (
|
||||
<label className='glitch local-settings__page__item' htmlFor={id}>
|
||||
<input
|
||||
|
|
Loading…
Reference in New Issue