aboutsummaryrefslogtreecommitdiff
path: root/src/background/index.js
blob: e968c826b6d0f01317e4e285813e53d6d20bda66 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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());