diff options
Diffstat (limited to 'ext/bg/js/yomichan.js')
-rw-r--r-- | ext/bg/js/yomichan.js | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/ext/bg/js/yomichan.js b/ext/bg/js/yomichan.js index 5f330e24..fe7007eb 100644 --- a/ext/bg/js/yomichan.js +++ b/ext/bg/js/yomichan.js @@ -23,24 +23,26 @@ class Yomichan { this.translator = new Translator(); this.updateState('disabled'); - this.updateOptions({}); - chrome.runtime.onMessage.addListener(this.onMessage.bind(this)); - chrome.browserAction.onClicked.addListener(this.onBrowserAction.bind(this)); + loadOptions((opts) => { + this.updateOptions(opts); - loadOptions((opts) => this.updateOptions(opts)); + chrome.runtime.onMessage.addListener(this.onMessage.bind(this)); + chrome.browserAction.onClicked.addListener(this.onBrowserAction.bind(this)); + }); } onMessage(request, sender, callback) { const {action, data} = request; - const handler = { - findKanji: ({text}) => this.translator.onFindKanji(text), - findTerm: ({text}) => this.translator.findTerm(text), - getState: () => this.state, - renderTemplate: ({data, template}) => Handlebars.templates[template](data) - }[action]; + const handlers = { + findKanji: ({text}) => this.translator.onFindKanji(text), + findTerm: ({text}) => this.translator.findTerm(text), + getState: () => this.state, + getOptions: () => this.options, + renderText: ({data, template}) => Handlebars.templates[template](data) + }; - const result = handler.call(this, data); + const result = handlers[action].call(this, data); if (callback !== null) { callback(result); } |