aboutsummaryrefslogtreecommitdiff
path: root/src/components/background-input.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/background-input.js')
-rw-r--r--src/components/background-input.js53
1 files changed, 0 insertions, 53 deletions
diff --git a/src/components/background-input.js b/src/components/background-input.js
deleted file mode 100644
index bd6ecf9..0000000
--- a/src/components/background-input.js
+++ /dev/null
@@ -1,53 +0,0 @@
-import * as inputActions from 'actions/input';
-import * as operationActions from 'actions/operation';
-
-export default class BackgroundInputComponent {
- constructor(store) {
- this.store = store;
- this.keymaps = {};
- this.prevInputs = [];
- }
-
- update(sender) {
- let state = this.store.getState();
- this.reloadSettings(state.setting);
- this.handleKeyInputs(sender, state.input);
- }
-
- reloadSettings(setting) {
- if (!setting.settings.json) {
- return;
- }
- this.keymaps = JSON.parse(setting.settings.json).keymaps;
- }
-
- handleKeyInputs(sender, input) {
- if (JSON.stringify(this.prevInputs) === JSON.stringify(input)) {
- return;
- }
- this.prevInputs = input;
-
- if (input.keys.length === 0) {
- return;
- }
- if (sender) {
- return this.handleKeysChanged(sender, input);
- }
- }
-
- handleKeysChanged(sender, input) {
- let matched = Object.keys(this.keymaps).filter((keyStr) => {
- 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 && input.keys !== matched[0]) {
- return Promise.resolve();
- }
- let operation = this.keymaps[matched];
- this.store.dispatch(operationActions.exec(operation, sender.tab), sender);
- this.store.dispatch(inputActions.clearKeys(), sender);
- }
-}