From c6eb5553d0477f96b5edd48012b4c4ab342f026c Mon Sep 17 00:00:00 2001
From: Shin'ya Ueoka <ueokande@i-beam.org>
Date: Sun, 22 Oct 2017 17:45:16 +0900
Subject: add setting actions in content

---
 src/content/components/common/index.js     |  4 ++--
 src/content/components/common/keymapper.js | 15 ++++++++-------
 2 files changed, 10 insertions(+), 9 deletions(-)

(limited to 'src/content/components/common')

diff --git a/src/content/components/common/index.js b/src/content/components/common/index.js
index db0ac43..5f5531b 100644
--- a/src/content/components/common/index.js
+++ b/src/content/components/common/index.js
@@ -1,7 +1,7 @@
 import InputComponent from './input';
 import KeymapperComponent from './keymapper';
 import FollowComponent from './follow';
-import * as inputActions from 'content/actions/input';
+import * as settingActions from 'content/actions/setting';
 import messages from 'shared/messages';
 
 export default class Common {
@@ -40,7 +40,7 @@ export default class Common {
     browser.runtime.sendMessage({
       type: messages.SETTINGS_QUERY,
     }).then((settings) => {
-      this.store.dispatch(inputActions.setKeymaps(settings.keymaps));
+      this.store.dispatch(settingActions.set(settings));
     });
   }
 }
diff --git a/src/content/components/common/keymapper.js b/src/content/components/common/keymapper.js
index 5070cd8..44d8212 100644
--- a/src/content/components/common/keymapper.js
+++ b/src/content/components/common/keymapper.js
@@ -11,19 +11,20 @@ export default class KeymapperComponent {
   }
 
   key(key) {
-    let enabled = this.store.getState().addon.enabled;
-
     this.store.dispatch(inputActions.keyPress(key));
 
-    let input = this.store.getState().input;
-    let matched = Object.keys(input.keymaps).filter((keyStr) => {
+    let state = this.store.getState();
+    let input = state.input;
+    let keymaps = state.setting.keymaps;
+
+    let matched = Object.keys(keymaps).filter((keyStr) => {
       return keyStr.startsWith(input.keys);
     });
-    if (!enabled) {
+    if (!state.addon.enabled) {
       // available keymaps are only ADDON_ENABLE and ADDON_TOGGLE_ENABLED if
       // the addon disabled
       matched = matched.filter((keys) => {
-        let type = input.keymaps[keys].type;
+        let type = keymaps[keys].type;
         return type === operations.ADDON_ENABLE ||
           type === operations.ADDON_TOGGLE_ENABLED;
       });
@@ -35,7 +36,7 @@ export default class KeymapperComponent {
       matched.length === 1 && input.keys !== matched[0]) {
       return true;
     }
-    let operation = input.keymaps[matched];
+    let operation = keymaps[matched];
     this.store.dispatch(operationActions.exec(operation));
     this.store.dispatch(inputActions.clearKeys());
     return true;
-- 
cgit v1.2.3