A fork of https://github.com/ueokande/vim-vixen
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.4 KiB
41 lines
1.4 KiB
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); |
|
}); |
|
|
|
const onMessage = (message) => { |
|
switch (message.type) { |
|
case messages.CONSOLE_SHOW_COMMAND: |
|
return store.dispatch(consoleActions.showCommand(message.command)); |
|
case messages.CONSOLE_SHOW_ERROR: |
|
return store.dispatch(consoleActions.showError(message.text)); |
|
case messages.CONSOLE_SHOW_INFO: |
|
return store.dispatch(consoleActions.showInfo(message.text)); |
|
case messages.CONSOLE_HIDE_COMMAND: |
|
return store.dispatch(consoleActions.hideCommand()); |
|
} |
|
}; |
|
|
|
store.subscribe(() => { |
|
completionComponent.update(); |
|
consoleComponent.update(); |
|
}); |
|
|
|
browser.runtime.onMessage.addListener(onMessage); |
|
window.addEventListener('message', (message) => { |
|
onMessage(JSON.parse(message.data)); |
|
}, false);
|
|
|