blacklist form

This commit is contained in:
Shin'ya Ueoka 2017-11-25 14:59:03 +09:00
parent bbad1c6c6a
commit df10208ed5
4 changed files with 75 additions and 13 deletions

View file

@ -3,6 +3,7 @@ import { h, Component } from 'preact';
import Input from './ui/input';
import SearchEngineForm from './form/search-engine-form';
import KeymapsForm from './form/keymaps-form';
import BlacklistForm from './form/blacklist-form';
import * as settingActions from 'settings/actions/setting';
import * as validator from 'shared/validators/setting';
@ -42,14 +43,21 @@ class SettingsComponent extends Component {
<legend>Keybindings</legend>
<KeymapsForm
value={this.state.settings.form.keymaps}
onChange={this.bindKeymapsForm.bind(this)}
onChange={value => this.bindForm('keymaps', value)}
/>
</fieldset>
<fieldset>
<legend>Search Engines</legend>
<SearchEngineForm
value={this.state.settings.form.search}
onChange={this.bindSearchForm.bind(this)}
onChange={value => this.bindForm('search', value)}
/>
</fieldset>
<fieldset>
<legend>Blacklist</legend>
<BlacklistForm
value={this.state.settings.form.blacklist}
onChange={value => this.bindForm('blacklist', value)}
/>
</fieldset>
</div>;
@ -110,16 +118,13 @@ class SettingsComponent extends Component {
}
}
bindSearchForm(value) {
let next = Object.assign({}, this.state);
next.settings.form.search = value;
this.setState(next);
this.context.store.dispatch(settingActions.save(next.settings));
}
bindKeymapsForm(value) {
let next = Object.assign({}, this.state);
next.settings.form.keymaps = value;
bindForm(name, value) {
let next = Object.assign({}, this.state, {
settings: Object.assign({}, this.state.settings, {
form: Object.assign({}, this.state.settings.form)
})
});
next.settings.form[name] = value;
this.setState(next);
this.context.store.dispatch(settingActions.save(next.settings));
}