diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/actions/input.js | 12 | ||||
-rw-r--r-- | src/components/background-input.js | 6 | ||||
-rw-r--r-- | src/components/background.js | 2 | ||||
-rw-r--r-- | src/components/content-input.js | 2 | ||||
-rw-r--r-- | src/content/index.js | 1 | ||||
-rw-r--r-- | src/reducers/input.js | 11 | ||||
-rw-r--r-- | src/shared/keys.js | 21 |
7 files changed, 17 insertions, 38 deletions
diff --git a/src/actions/input.js b/src/actions/input.js index 07948a1..67788dd 100644 --- a/src/actions/input.js +++ b/src/actions/input.js @@ -1,10 +1,16 @@ import actions from '../actions'; -const keyPress = (code, ctrl) => { +const asKeymapChars = (key, ctrl) => { + if (ctrl) { + return '<C-' + key.toUpperCase() + '>'; + } + return key; +}; + +const keyPress = (key, ctrl) => { return { type: actions.INPUT_KEY_PRESS, - code, - ctrl + key: asKeymapChars(key, ctrl), }; }; diff --git a/src/components/background-input.js b/src/components/background-input.js index 9c6ef1c..4735d5a 100644 --- a/src/components/background-input.js +++ b/src/components/background-input.js @@ -1,5 +1,4 @@ import * as inputActions from '../actions/input'; -import * as keys from '../shared/keys'; import * as operationActions from '../actions/operation'; export default class BackgroundInputComponent { @@ -37,15 +36,14 @@ export default class BackgroundInputComponent { } handleKeysChanged(sender, input) { - let prefix = keys.asKeymapChars(input.keys); let matched = Object.keys(this.keymaps).filter((keyStr) => { - return keyStr.startsWith(prefix); + return keyStr.startsWith(input.keys); }); if (matched.length === 0) { this.store.dispatch(inputActions.clearKeys(), sender); return Promise.resolve(); } else if (matched.length > 1 || - matched.length === 1 && prefix !== matched[0]) { + matched.length === 1 && input.keys !== matched[0]) { return Promise.resolve(); } let operation = this.keymaps[matched]; diff --git a/src/components/background.js b/src/components/background.js index 4c5bb19..0585a04 100644 --- a/src/components/background.js +++ b/src/components/background.js @@ -35,7 +35,7 @@ export default class BackgroundComponent { switch (message.type) { case messages.KEYDOWN: return this.store.dispatch( - inputActions.keyPress(message.code, message.ctrl), sender); + inputActions.keyPress(message.key, message.ctrl), sender); case messages.OPEN_URL: if (message.newTab) { return this.store.dispatch( diff --git a/src/components/content-input.js b/src/components/content-input.js index 81f2e6b..53a2f7d 100644 --- a/src/components/content-input.js +++ b/src/components/content-input.js @@ -18,7 +18,7 @@ export default class ContentInputComponent { } browser.runtime.sendMessage({ type: messages.KEYDOWN, - code: e.which, + key: e.key, ctrl: e.ctrlKey }); } diff --git a/src/content/index.js b/src/content/index.js index e5a2965..655bea4 100644 --- a/src/content/index.js +++ b/src/content/index.js @@ -19,6 +19,7 @@ followStore.subscribe(() => { console.error(e); } }); +// eslint-disable-next-line no-unused-vars const contentInputComponent = new ContentInputComponent(window); consoleFrames.initialize(window.document); diff --git a/src/reducers/input.js b/src/reducers/input.js index eb7ff24..8be701e 100644 --- a/src/reducers/input.js +++ b/src/reducers/input.js @@ -1,23 +1,18 @@ import actions from '../actions'; const defaultState = { - keys: [], + keys: '', }; export default function reducer(state = defaultState, action = {}) { switch (action.type) { case actions.INPUT_KEY_PRESS: return Object.assign({}, state, { - keys: state.keys.concat([ - { - code: action.code, - ctrl: action.ctrl - } - ]) + keys: state.keys + action.key }); case actions.INPUT_CLEAR_KEYS: return Object.assign({}, state, { - keys: [], + keys: '', }); default: return state; diff --git a/src/shared/keys.js b/src/shared/keys.js deleted file mode 100644 index aca050e..0000000 --- a/src/shared/keys.js +++ /dev/null @@ -1,21 +0,0 @@ -const asKeymapChars = (keys) => { - return keys.map((k) => { - let c = String.fromCharCode(k.code); - if (k.ctrl) { - return '<C-' + c.toUpperCase() + '>'; - } - return c; - }).join(''); -}; - -const asCaretChars = (keys) => { - return keys.map((k) => { - let c = String.fromCharCode(k.code); - if (k.ctrl) { - return '^' + c.toUpperCase(); - } - return c; - }).join(''); -}; - -export { asKeymapChars, asCaretChars }; |