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.
43 lines
1.4 KiB
43 lines
1.4 KiB
import * as messages from '../shared/messages'; |
|
import reducers from './reducers'; |
|
import { createStore, applyMiddleware } from 'redux'; |
|
import promise from 'redux-promise'; |
|
import * as consoleActions from './actions/console'; |
|
import { Provider } from 'react-redux'; |
|
import Console from './components/Console'; |
|
import React from 'react'; |
|
import ReactDOM from 'react-dom'; |
|
|
|
const store = createStore( |
|
reducers, |
|
applyMiddleware(promise), |
|
); |
|
|
|
window.addEventListener('load', () => { |
|
let wrapper = document.getElementById('vimvixen-console'); |
|
ReactDOM.render( |
|
<Provider store={store} > |
|
<Console></Console> |
|
</Provider>, |
|
wrapper); |
|
}); |
|
|
|
const onMessage = (message: any): any => { |
|
let msg = messages.valueOf(message); |
|
switch (msg.type) { |
|
case messages.CONSOLE_SHOW_COMMAND: |
|
return store.dispatch(consoleActions.showCommand(msg.command)); |
|
case messages.CONSOLE_SHOW_FIND: |
|
return store.dispatch(consoleActions.showFind()); |
|
case messages.CONSOLE_SHOW_ERROR: |
|
return store.dispatch(consoleActions.showError(msg.text)); |
|
case messages.CONSOLE_SHOW_INFO: |
|
return store.dispatch(consoleActions.showInfo(msg.text)); |
|
case messages.CONSOLE_HIDE: |
|
return store.dispatch(consoleActions.hide()); |
|
} |
|
}; |
|
|
|
browser.runtime.onMessage.addListener(onMessage); |
|
let port = browser.runtime.connect(undefined, { name: 'vimvixen-console' }); |
|
port.onMessage.addListener(onMessage);
|
|
|