diff options
author | Shin'ya Ueoka <ueokande@i-beam.org> | 2017-10-09 15:30:05 +0900 |
---|---|---|
committer | Shin'ya Ueoka <ueokande@i-beam.org> | 2017-10-09 15:30:05 +0900 |
commit | c913dcdec775094daa9a64fa40034b3122320660 (patch) | |
tree | 978f2ad2581bc069e9369b28fe743b91c09f18a3 /src | |
parent | 355c0c64575adad4886647a1df3da173598b558b (diff) |
parse json in settings
Diffstat (limited to 'src')
-rw-r--r-- | src/background/actions/settings.js | 0 | ||||
-rw-r--r-- | src/background/components/background.js | 12 | ||||
-rw-r--r-- | src/content/index.js | 3 | ||||
-rw-r--r-- | src/settings/actions/setting.js | 12 | ||||
-rw-r--r-- | src/settings/components/setting.js | 3 | ||||
-rw-r--r-- | src/settings/reducers/setting.js | 10 |
6 files changed, 18 insertions, 22 deletions
diff --git a/src/background/actions/settings.js b/src/background/actions/settings.js new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/background/actions/settings.js diff --git a/src/background/components/background.js b/src/background/components/background.js index 0570a5a..06b6900 100644 --- a/src/background/components/background.js +++ b/src/background/components/background.js @@ -22,15 +22,7 @@ export default class BackgroundComponent { } update() { - let state = this.store.getState(); - this.updateSettings(state); - } - - updateSettings(setting) { - if (!setting.settings.json) { - return; - } - this.settings = JSON.parse(setting.settings.json); + this.settings = this.store.getState(); } onMessage(message, sender) { @@ -58,7 +50,7 @@ export default class BackgroundComponent { }); }); case messages.SETTINGS_QUERY: - return Promise.resolve(this.store.getState().settings); + return Promise.resolve(this.store.getState().value); case messages.CONSOLE_QUERY_COMPLETIONS: return commands.complete(message.text, this.settings); case messages.SETTINGS_RELOAD: diff --git a/src/content/index.js b/src/content/index.js index 1ed8463..64d86bb 100644 --- a/src/content/index.js +++ b/src/content/index.js @@ -34,8 +34,7 @@ const reloadSettings = () => { return browser.runtime.sendMessage({ type: messages.SETTINGS_QUERY, }).then((settings) => { - let keymaps = JSON.parse(settings.json).keymaps; - store.dispatch(inputActions.setKeymaps(keymaps)); + store.dispatch(inputActions.setKeymaps(settings.keymaps)); }); }; diff --git a/src/settings/actions/setting.js b/src/settings/actions/setting.js index 697bcf0..3525f0a 100644 --- a/src/settings/actions/setting.js +++ b/src/settings/actions/setting.js @@ -4,8 +4,9 @@ import DefaultSettings from 'shared/default-settings'; const load = () => { return browser.storage.local.get('settings').then((value) => { - if (value.settings) { - return set(value.settings); + let settings = value.settings; + if (settings) { + return set(settings); } return set(DefaultSettings); }, console.error); @@ -13,7 +14,7 @@ const load = () => { const save = (settings) => { return browser.storage.local.set({ - settings + settings, }).then(() => { return browser.runtime.sendMessage({ type: messages.SETTINGS_RELOAD @@ -24,8 +25,9 @@ const save = (settings) => { const set = (settings) => { return { type: actions.SETTING_SET_SETTINGS, - settings, + json: settings.json, + value: JSON.parse(settings.json), }; }; -export { load, save, set }; +export { load, save }; diff --git a/src/settings/components/setting.js b/src/settings/components/setting.js index 14482a3..cf1538f 100644 --- a/src/settings/components/setting.js +++ b/src/settings/components/setting.js @@ -35,11 +35,12 @@ export default class SettingComponent { } update() { - let { settings } = this.store.getState(); + let settings = this.store.getState(); let doc = this.wrapper.ownerDocument; let form = doc.getElementById('vimvixen-settings-form'); let plainJsonInput = form.elements['plain-json']; plainJsonInput.value = settings.json; + } } diff --git a/src/settings/reducers/setting.js b/src/settings/reducers/setting.js index f7d9242..7f32f72 100644 --- a/src/settings/reducers/setting.js +++ b/src/settings/reducers/setting.js @@ -1,15 +1,17 @@ import actions from 'settings/actions'; const defaultState = { - settings: {} + json: '', + value: {} }; export default function reducer(state = defaultState, action = {}) { switch (action.type) { case actions.SETTING_SET_SETTINGS: - return Object.assign({}, state, { - settings: action.settings, - }); + return { + json: action.json, + value: action.value, + }; default: return state; } |