Switch from selects to radio buttons for local settings, improve styling
This commit is contained in:
@ -48,57 +48,62 @@ export default class LocalSettingsPageItem extends React.PureComponent {
|
||||
|
||||
if (options && options.length > 0) {
|
||||
const currentValue = settings.getIn(item);
|
||||
const optionElems = options && options.length > 0 && options.map((opt) => (
|
||||
<option
|
||||
key={opt.value}
|
||||
value={opt.value}
|
||||
>
|
||||
{opt.message}
|
||||
</option>
|
||||
));
|
||||
return (
|
||||
<label className='glitch local-settings__page__item' htmlFor={id}>
|
||||
<p>{children}</p>
|
||||
<p>
|
||||
<select
|
||||
id={id}
|
||||
disabled={!enabled}
|
||||
const optionElems = options && options.length > 0 && options.map((opt) => {
|
||||
let optionId = `${id}--${opt.value}`;
|
||||
return (
|
||||
<label htmlFor={optionId}>
|
||||
<input type='radio'
|
||||
name={id}
|
||||
id={optionId}
|
||||
value={opt.value}
|
||||
onBlur={handleChange}
|
||||
onChange={handleChange}
|
||||
value={currentValue}
|
||||
>
|
||||
{optionElems}
|
||||
</select>
|
||||
</p>
|
||||
</label>
|
||||
checked={ currentValue === opt.value }
|
||||
disabled={!enabled}
|
||||
/>
|
||||
{opt.message}
|
||||
</label>
|
||||
);
|
||||
});
|
||||
return (
|
||||
<div class='glitch local-settings__page__item radio_buttons'>
|
||||
<fieldset>
|
||||
<legend>{children}</legend>
|
||||
{optionElems}
|
||||
</fieldset>
|
||||
</div>
|
||||
);
|
||||
} 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>
|
||||
<div className='glitch local-settings__page__item string'>
|
||||
<label htmlFor={id}>
|
||||
<p>{children}</p>
|
||||
<p>
|
||||
<input
|
||||
id={id}
|
||||
type='text'
|
||||
value={settings.getIn(item)}
|
||||
placeholder={placeholder}
|
||||
onChange={handleChange}
|
||||
disabled={!enabled}
|
||||
/>
|
||||
</p>
|
||||
</label>
|
||||
</div>
|
||||
);
|
||||
} else return (
|
||||
<label className='glitch local-settings__page__item' htmlFor={id}>
|
||||
<input
|
||||
id={id}
|
||||
type='checkbox'
|
||||
checked={settings.getIn(item)}
|
||||
onChange={handleChange}
|
||||
disabled={!enabled}
|
||||
/>
|
||||
{children}
|
||||
</label>
|
||||
<div className='glitch local-settings__page__item boolean'>
|
||||
<label htmlFor={id}>
|
||||
<input
|
||||
id={id}
|
||||
type='checkbox'
|
||||
checked={settings.getIn(item)}
|
||||
onChange={handleChange}
|
||||
disabled={!enabled}
|
||||
/>
|
||||
{children}
|
||||
</label>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user