aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/components/background.js12
-rw-r--r--src/components/console.js6
-rw-r--r--src/content/messages.js2
-rw-r--r--src/pages/console.js1
-rw-r--r--src/shared/commands.js (renamed from src/actions/command.js)8
5 files changed, 12 insertions, 17 deletions
diff --git a/src/components/background.js b/src/components/background.js
index 08d5115..195cfd9 100644
--- a/src/components/background.js
+++ b/src/components/background.js
@@ -1,9 +1,9 @@
import messages from 'content/messages';
-import * as commandActions from 'actions/command';
import * as consoleActions from 'actions/console';
import * as inputActions from 'actions/input';
import * as settingsActions from 'actions/setting';
import * as tabActions from 'actions/tab';
+import * as commands from 'shared/commands';
export default class BackgroundComponent {
constructor(store) {
@@ -12,7 +12,7 @@ export default class BackgroundComponent {
browser.runtime.onMessage.addListener((message, sender) => {
try {
- this.onMessage(message, sender);
+ return this.onMessage(message, sender);
} catch (e) {
this.store.dispatch(consoleActions.showError(e.message), sender);
}
@@ -47,11 +47,9 @@ export default class BackgroundComponent {
return this.store.dispatch(
consoleActions.hide(), sender);
case messages.CONSOLE_ENTERED:
- return this.store.dispatch(
- commandActions.exec(message.text, this.settings), sender);
- case messages.CONSOLE_CHANGEED:
- return this.store.dispatch(
- commandActions.complete(message.text, this.settings), sender);
+ return commands.exec(message.text, this.settings);
+ case messages.CONSOLE_QUERY_COMPLETIONS:
+ return commands.complete(message.text, this.settings);
case messages.SETTINGS_RELOAD:
this.store.dispatch(settingsActions.load());
}
diff --git a/src/components/console.js b/src/components/console.js
index 25b135c..177cfe5 100644
--- a/src/components/console.js
+++ b/src/components/console.js
@@ -36,7 +36,7 @@ export default class ConsoleComponent {
return browser.runtime.sendMessage({
type: messages.CONSOLE_ENTERED,
text: e.target.value
- });
+ }).then(this.onBlur);
case KeyboardEvent.DOM_VK_TAB:
if (e.shiftKey) {
this.store.dispatch(completionActions.selectPrev());
@@ -63,8 +63,10 @@ export default class ConsoleComponent {
this.prevValue = e.target.value;
return browser.runtime.sendMessage({
- type: messages.CONSOLE_CHANGEED,
+ type: messages.CONSOLE_QUERY_COMPLETIONS,
text: e.target.value
+ }).then((completions) => {
+ this.store.dispatch(completionActions.setItems(completions));
});
}
diff --git a/src/content/messages.js b/src/content/messages.js
index df9fba2..72a566b 100644
--- a/src/content/messages.js
+++ b/src/content/messages.js
@@ -4,7 +4,7 @@ export default {
CONSOLE_BLURRED: 'console.blured',
CONSOLE_ENTERED: 'console.entered',
- CONSOLE_CHANGEED: 'console.changed',
+ CONSOLE_QUERY_COMPLETIONS: 'console.query.completions',
KEYDOWN: 'keydown',
diff --git a/src/pages/console.js b/src/pages/console.js
index a4536ec..4d78826 100644
--- a/src/pages/console.js
+++ b/src/pages/console.js
@@ -39,6 +39,5 @@ browser.runtime.onMessage.addListener((action) => {
if (action.type === messages.STATE_UPDATE) {
let state = action.state.console;
consoleComponent.update(state);
- store.dispatch(completionActions.setItems(state.completions));
}
});
diff --git a/src/actions/command.js b/src/shared/commands.js
index a40cc97..b1d8780 100644
--- a/src/actions/command.js
+++ b/src/shared/commands.js
@@ -1,6 +1,5 @@
import * as tabs from 'background/tabs';
import * as histories from 'background/histories';
-import * as consoleActions from './console';
const normalizeUrl = (string, searchConfig) => {
try {
@@ -132,16 +131,13 @@ const getCompletions = (command, keywords, settings) => {
const exec = (line, settings) => {
let name = line.split(' ')[0];
let remaining = line.replace(name + ' ', '');
- return doCommand(name, remaining, settings).then(() => {
- return consoleActions.hide();
- });
+ return doCommand(name, remaining, settings);
};
const complete = (line, settings) => {
let command = line.split(' ', 1)[0];
let keywords = line.replace(command + ' ', '');
- return getCompletions(command, keywords, settings)
- .then(consoleActions.setCompletions);
+ return getCompletions(command, keywords, settings);
};
export { exec, complete };