aboutsummaryrefslogtreecommitdiff
path: root/src/content/components/common/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/components/common/index.js')
-rw-r--r--src/content/components/common/index.js19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/content/components/common/index.js b/src/content/components/common/index.js
index 565632c..9b7b083 100644
--- a/src/content/components/common/index.js
+++ b/src/content/components/common/index.js
@@ -3,6 +3,7 @@ import KeymapperComponent from './keymapper';
import FollowComponent from './follow';
import * as settingActions from 'content/actions/setting';
import messages from 'shared/messages';
+import * as addonActions from '../../actions/addon';
export default class Common {
constructor(win, store) {
@@ -14,16 +15,32 @@ export default class Common {
input.onKey(key => keymapper.key(key));
this.store = store;
+ this.prevEnabled = undefined;
this.reloadSettings();
messages.onMessage(this.onMessage.bind(this));
+ store.subscribe(() => this.update());
}
onMessage(message) {
switch (message.type) {
case messages.SETTINGS_CHANGED:
- this.reloadSettings();
+ return this.reloadSettings();
+ case messages.ADDON_TOGGLE_ENABLED:
+ return this.store.dispatch(addonActions.toggleEnabled());
+ }
+ }
+
+ update() {
+ let enabled = this.store.getState().addon.enabled;
+ if (enabled !== this.prevEnabled) {
+ this.prevEnabled = enabled;
+
+ browser.runtime.sendMessage({
+ type: messages.ADDON_ENABLED_RESPONSE,
+ enabled,
+ });
}
}