aboutsummaryrefslogblamecommitdiff
path: root/src/background/index.js
blob: e968c826b6d0f01317e4e285813e53d6d20bda66 (plain) (tree)
1
2
3
4
5
6
7
8
9
                                                     
                                                      
                                                           
                                                                      
                                   
                                           
                                  
 
                                                                    
                                 

                                                                          
   
                                                                     
                                                                               
                                       
                                          
   





                                                    
   
 
                                                 
import * as consoleActions from '../actions/console';
import * as settingsActions from '../actions/setting';
import BackgroundComponent from '../components/background';
import BackgroundInputComponent from '../components/background-input';
import reducers from '../reducers';
import messages from '../content/messages';
import * as store from '../store';

const backgroundStore = store.createStore(reducers, (e, sender) => {
  console.error('Vim-Vixen:', e);
  if (sender) {
    backgroundStore.dispatch(consoleActions.showError(e.message), sender);
  }
});
const backgroundComponent = new BackgroundComponent(backgroundStore);
const backgroundInputComponent = new BackgroundInputComponent(backgroundStore);
backgroundStore.subscribe((sender) => {
  backgroundComponent.update(sender);
  backgroundInputComponent.update(sender);
});
backgroundStore.subscribe((sender) => {
  if (sender) {
    return browser.tabs.sendMessage(sender.tab.id, {
      type: messages.STATE_UPDATE,
      state: backgroundStore.getState()
    });
  }
});

backgroundStore.dispatch(settingsActions.load());