diff options
Diffstat (limited to 'src/console/index.js')
-rw-r--r-- | src/console/index.js | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/console/index.js b/src/console/index.js new file mode 100644 index 0000000..7396a96 --- /dev/null +++ b/src/console/index.js @@ -0,0 +1,34 @@ +import './site.scss'; +import messages from 'shared/messages'; +import CompletionComponent from 'console/components/completion'; +import ConsoleComponent from 'console/components/console'; +import reducers from 'console/reducers'; +import { createStore } from 'shared/store'; +import * as consoleActions from 'console/actions/console'; + +const store = createStore(reducers); +let completionComponent = null; +let consoleComponent = null; + +window.addEventListener('load', () => { + let wrapper = document.querySelector('#vimvixen-console-completion'); + completionComponent = new CompletionComponent(wrapper, store); + + consoleComponent = new ConsoleComponent(document.body, store); +}); + +store.subscribe(() => { + completionComponent.update(); + consoleComponent.update(); +}); + +browser.runtime.onMessage.addListener((action) => { + switch (action.type) { + case messages.CONSOLE_SHOW_COMMAND: + return store.dispatch(consoleActions.showCommand(action.command)); + case messages.CONSOLE_SHOW_ERROR: + return store.dispatch(consoleActions.showError(action.text)); + case messages.CONSOLE_HIDE: + return store.dispatch(consoleActions.hide(action.command)); + } +}); |