Switch from selects to radio buttons for local settings, improve styling
This commit is contained in:
parent
a3677a828d
commit
faecb35fe0
|
@ -48,57 +48,62 @@ export default class LocalSettingsPageItem extends React.PureComponent {
|
||||||
|
|
||||||
if (options && options.length > 0) {
|
if (options && options.length > 0) {
|
||||||
const currentValue = settings.getIn(item);
|
const currentValue = settings.getIn(item);
|
||||||
const optionElems = options && options.length > 0 && options.map((opt) => (
|
const optionElems = options && options.length > 0 && options.map((opt) => {
|
||||||
<option
|
let optionId = `${id}--${opt.value}`;
|
||||||
key={opt.value}
|
return (
|
||||||
value={opt.value}
|
<label htmlFor={optionId}>
|
||||||
>
|
<input type='radio'
|
||||||
{opt.message}
|
name={id}
|
||||||
</option>
|
id={optionId}
|
||||||
));
|
value={opt.value}
|
||||||
return (
|
|
||||||
<label className='glitch local-settings__page__item' htmlFor={id}>
|
|
||||||
<p>{children}</p>
|
|
||||||
<p>
|
|
||||||
<select
|
|
||||||
id={id}
|
|
||||||
disabled={!enabled}
|
|
||||||
onBlur={handleChange}
|
onBlur={handleChange}
|
||||||
onChange={handleChange}
|
onChange={handleChange}
|
||||||
value={currentValue}
|
checked={ currentValue === opt.value }
|
||||||
>
|
disabled={!enabled}
|
||||||
{optionElems}
|
/>
|
||||||
</select>
|
{opt.message}
|
||||||
</p>
|
</label>
|
||||||
</label>
|
);
|
||||||
|
});
|
||||||
|
return (
|
||||||
|
<div class='glitch local-settings__page__item radio_buttons'>
|
||||||
|
<fieldset>
|
||||||
|
<legend>{children}</legend>
|
||||||
|
{optionElems}
|
||||||
|
</fieldset>
|
||||||
|
</div>
|
||||||
);
|
);
|
||||||
} else if (placeholder) {
|
} else if (placeholder) {
|
||||||
return (
|
return (
|
||||||
<label className='glitch local-settings__page__item' htmlFor={id}>
|
<div className='glitch local-settings__page__item string'>
|
||||||
<p>{children}</p>
|
<label htmlFor={id}>
|
||||||
<p>
|
<p>{children}</p>
|
||||||
<input
|
<p>
|
||||||
id={id}
|
<input
|
||||||
type='text'
|
id={id}
|
||||||
value={settings.getIn(item)}
|
type='text'
|
||||||
placeholder={placeholder}
|
value={settings.getIn(item)}
|
||||||
onChange={handleChange}
|
placeholder={placeholder}
|
||||||
disabled={!enabled}
|
onChange={handleChange}
|
||||||
/>
|
disabled={!enabled}
|
||||||
</p>
|
/>
|
||||||
</label>
|
</p>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
);
|
);
|
||||||
} else return (
|
} else return (
|
||||||
<label className='glitch local-settings__page__item' htmlFor={id}>
|
<div className='glitch local-settings__page__item boolean'>
|
||||||
<input
|
<label htmlFor={id}>
|
||||||
id={id}
|
<input
|
||||||
type='checkbox'
|
id={id}
|
||||||
checked={settings.getIn(item)}
|
type='checkbox'
|
||||||
onChange={handleChange}
|
checked={settings.getIn(item)}
|
||||||
disabled={!enabled}
|
onChange={handleChange}
|
||||||
/>
|
disabled={!enabled}
|
||||||
{children}
|
/>
|
||||||
</label>
|
{children}
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,8 +11,21 @@
|
||||||
max-height: 450px;
|
max-height: 450px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
label {
|
label, legend {
|
||||||
display: block;
|
display: block;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.boolean label, .radio_buttons label {
|
||||||
|
position: relative;
|
||||||
|
padding-left: 28px;
|
||||||
|
padding-top: 3px;
|
||||||
|
|
||||||
|
input {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
|
@ -74,7 +87,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.glitch.local-settings__page__item {
|
.glitch.local-settings__page__item {
|
||||||
select {
|
margin-bottom: 2px;
|
||||||
margin-bottom: 5px;
|
}
|
||||||
}
|
|
||||||
|
.glitch.local-settings__page__item.string,
|
||||||
|
.glitch.local-settings__page__item.radio_buttons {
|
||||||
|
margin-top: 10px;
|
||||||
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
Reference in New Issue