diff options
Diffstat (limited to 'src/console')
-rw-r--r-- | src/console/console-frame.js | 48 | ||||
-rw-r--r-- | src/console/console.js | 17 | ||||
-rw-r--r-- | src/console/frames.js | 27 |
3 files changed, 36 insertions, 56 deletions
diff --git a/src/console/console-frame.js b/src/console/console-frame.js deleted file mode 100644 index 063026c..0000000 --- a/src/console/console-frame.js +++ /dev/null @@ -1,48 +0,0 @@ -import './console-frame.scss'; -import * as consoleActions from '../actions/console'; - -export default class ConsoleFrame { - constructor(win) { - let element = window.document.createElement('iframe'); - element.src = browser.runtime.getURL('build/console.html'); - element.className = 'vimvixen-console-frame'; - win.document.body.append(element); - - this.element = element; - - this.errorShown = true; - - this.hide(); - } - - showCommand(text) { - this.showFrame(); - this.errorShown = false; - return browser.runtime.sendMessage(consoleActions.showCommand(text)); - } - - showError(text) { - this.showFrame(); - - this.errorShown = true; - this.element.blur(); - - return browser.runtime.sendMessage(consoleActions.showError(text)); - } - - showFrame() { - this.element.style.display = 'block'; - } - - hide() { - this.element.style.display = 'none'; - this.element.blur(); - this.errorShown = false; - - return browser.runtime.sendMessage(consoleActions.hide()); - } - - isErrorShown() { - return this.element.style.display === 'block' && this.errorShown; - } -} diff --git a/src/console/console.js b/src/console/console.js index d79e154..f83f79c 100644 --- a/src/console/console.js +++ b/src/console/console.js @@ -1,5 +1,6 @@ import './console.scss'; import * as backgroundActions from '../actions/background'; +import * as consoleActions from '../actions/console'; import Completion from './completion'; import consoleReducer from '../reducers/console'; @@ -9,12 +10,6 @@ var completion = null; var completionOrigin = ""; let state = consoleReducer(undefined, {}); -const blurMessage = () => { - return { - type: 'vimvixen.command.blur' - }; -}; - const keydownMessage = (input) => { return { type: 'vimvixen.command.enter', @@ -23,7 +18,7 @@ const keydownMessage = (input) => { }; const handleBlur = () => { - return browser.runtime.sendMessage(blurMessage()); + return browser.runtime.sendMessage(consoleActions.hide()); }; const completeNext = () => { @@ -57,9 +52,11 @@ const completePrev = () => { } const handleKeydown = (e) => { + let input = window.document.querySelector('#vimvixen-console-command-input'); + switch(e.keyCode) { case KeyboardEvent.DOM_VK_ESCAPE: - return browser.runtime.sendMessage(blurMessage()); + return input.blur(); case KeyboardEvent.DOM_VK_RETURN: return browser.runtime.sendMessage(keydownMessage(e.target)); case KeyboardEvent.DOM_VK_TAB: @@ -183,3 +180,7 @@ browser.runtime.onMessage.addListener((action) => { state = nextState; } }); + +window.addEventListener('load', () => { + update({}, state); +}); diff --git a/src/console/frames.js b/src/console/frames.js new file mode 100644 index 0000000..0b6f3e2 --- /dev/null +++ b/src/console/frames.js @@ -0,0 +1,27 @@ +import './console-frame.scss'; +import * as consoleActions from '../actions/console'; + +const initialize = (doc) => { + let iframe = doc.createElement('iframe'); + iframe.src = browser.runtime.getURL('build/console.html'); + iframe.id = 'vimvixen-console-frame'; + iframe.className = 'vimvixen-console-frame'; + doc.body.append(iframe); + + return iframe; +} + +const showCommand = (text) => { + return browser.runtime.sendMessage(consoleActions.showCommand(text)); +}; + +const showError = (text) => { + return browser.runtime.sendMessage(consoleActions.showError(text)); +} + +const blur = (doc) => { + let iframe = doc.getElementById('vimvixen-console-frame'); + iframe.blur(); +} + +export { initialize, showCommand, showError, blur }; |