parent
2c366ac3b1
commit
129aae38df
9 changed files with 86 additions and 3 deletions
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.5 KiB |
@ -0,0 +1,38 @@ |
|||||||
|
import * as indicators from '../shared/indicators'; |
||||||
|
import messages from 'shared/messages'; |
||||||
|
|
||||||
|
export default class IndicatorComponent { |
||||||
|
constructor(store) { |
||||||
|
this.store = store; |
||||||
|
|
||||||
|
messages.onMessage(this.onMessage.bind(this)); |
||||||
|
|
||||||
|
browser.tabs.onActivated.addListener((info) => { |
||||||
|
return browser.tabs.query({ currentWindow: true }).then(() => { |
||||||
|
return this.onTabActivated(info); |
||||||
|
}); |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
onTabActivated(info) { |
||||||
|
return browser.tabs.sendMessage(info.tabId, { |
||||||
|
type: messages.ADDON_ENABLED_QUERY, |
||||||
|
}).then((resp) => { |
||||||
|
return this.updateIndicator(resp.enabled); |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
onMessage(message) { |
||||||
|
switch (message.type) { |
||||||
|
case messages.ADDON_ENABLED_RESPONSE: |
||||||
|
return this.updateIndicator(message.enabled); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
updateIndicator(enabled) { |
||||||
|
if (enabled) { |
||||||
|
return indicators.enable(); |
||||||
|
} |
||||||
|
return indicators.disable(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,13 @@ |
|||||||
|
const enable = () => { |
||||||
|
return browser.browserAction.setIcon({ |
||||||
|
path: 'resources/enabled_32x32.png', |
||||||
|
}); |
||||||
|
}; |
||||||
|
|
||||||
|
const disable = () => { |
||||||
|
return browser.browserAction.setIcon({ |
||||||
|
path: 'resources/disabled_32x32.png', |
||||||
|
}); |
||||||
|
}; |
||||||
|
|
||||||
|
export { enable, disable }; |
Reference in new issue