diff options
Diffstat (limited to 'src/settings')
| -rw-r--r-- | src/settings/components/form/PropertiesForm.tsx | 9 | ||||
| -rw-r--r-- | src/settings/storage.ts | 7 | 
2 files changed, 14 insertions, 2 deletions
| diff --git a/src/settings/components/form/PropertiesForm.tsx b/src/settings/components/form/PropertiesForm.tsx index 0be5f5c..ee98b7e 100644 --- a/src/settings/components/form/PropertiesForm.tsx +++ b/src/settings/components/form/PropertiesForm.tsx @@ -25,12 +25,19 @@ class PropertiesForm extends React.Component<Props> {          Object.keys(types).map((name) => {            let type = types[name];            let inputType = ''; +          let onChange = this.bindValue.bind(this);            if (type === 'string') {              inputType = 'text';            } else if (type === 'number') {              inputType = 'number';            } else if (type === 'boolean') {              inputType = 'checkbox'; + +            // Settings are saved onBlur, but checkbox does not fire it +            onChange = (e) => { +              this.bindValue(e); +              this.props.onBlur(); +            };            } else {              return null;            } @@ -40,7 +47,7 @@ class PropertiesForm extends React.Component<Props> {                <input type={inputType} name={name}                  className='column-input'                  value={value[name] ? value[name] : ''} -                onChange={this.bindValue.bind(this)} +                onChange={onChange}                  onBlur={this.props.onBlur}                  checked={value[name]}                /> diff --git a/src/settings/storage.ts b/src/settings/storage.ts index c0005b7..32b6351 100644 --- a/src/settings/storage.ts +++ b/src/settings/storage.ts @@ -5,7 +5,12 @@ export const load = async(): Promise<SettingData> => {    if (!settings) {      return DefaultSettingData;    } -  return SettingData.valueOf(settings as any); +  try { +    return SettingData.valueOf(settings as any); +  } catch (e) { +    console.error('unable to load settings', e); +    return DefaultSettingData; +  }  };  export const save = (data: SettingData) => { | 
