diff options
author | Alex Yatskov <alex@foosoft.net> | 2016-05-05 20:06:13 -0700 |
---|---|---|
committer | Alex Yatskov <alex@foosoft.net> | 2016-05-05 20:06:13 -0700 |
commit | 9cb099e5f6aad33c70d986bd6a48668e54ee211c (patch) | |
tree | d46de3d97388764f15f8f319d8455e60d3c2d9f4 /ext/fg/js/client.js | |
parent | dd4b2f73656d652bc56be784a27e7378ab969ac6 (diff) |
Optimization
Diffstat (limited to 'ext/fg/js/client.js')
-rw-r--r-- | ext/fg/js/client.js | 55 |
1 files changed, 13 insertions, 42 deletions
diff --git a/ext/fg/js/client.js b/ext/fg/js/client.js index 12b04066..aea2d607 100644 --- a/ext/fg/js/client.js +++ b/ext/fg/js/client.js @@ -26,8 +26,7 @@ class Client { this.activateBtn = 2; this.enabled = false; this.options = {}; - this.results = null; - this.xhr = null; + this.definitions = null; this.fgRoot = chrome.extension.getURL('fg'); chrome.runtime.onMessage.addListener(this.onBgMessage.bind(this)); @@ -102,17 +101,18 @@ class Client { } range.setLength(this.options.scanLength); - findTerm(range.text(), ({results, length}) => { + findTerm(range.text(), ({definitions, length}) => { if (length === 0) { this.hidePopup(); } else { range.setLength(length); renderText( - {defs: results, root: this.fgRoot, options: this.options}, + {defs: definitions, root: this.fgRoot, options: this.options}, 'term-list.html', (content) => { - this.results = results; - this.showPopup(range, content, results); + this.definitions = definitions; + this.showPopup(range, content); + canAddNotes(definitions, (states) => this.popup.sendMessage('setActionStates', states)); } ); } @@ -120,23 +120,17 @@ class Client { } actionAddNote(mode, index, callback) { - callback({ - action: 'disableAction', - params: { - mode: mode, - index: index - } - }); + } actionDisplayKanji(kanji) { - findKanji(kanji, (results) => { + findKanji(kanji, (definitions) => { renderText( - {defs: results, root: this.fgRoot, options: this.options}, + {defs: definitions, root: this.fgRoot, options: this.options}, 'kanji-list.html', (content) => { - this.results = results; - this.popup.setContent(content, results); + this.definitions = definitions; + this.popup.setContent(content, definitions); } ); }); @@ -159,8 +153,8 @@ class Client { this.lastRange.deselect(); } - this.lastRange = null; - this.results = null; + this.lastRange = null; + this.definitions = null; } setEnabled(enabled) { @@ -172,29 +166,6 @@ class Client { setOptions(opts) { this.options = opts; } - - callAnkiApi(action, params, callback) { - if (!this.options.enableAnkiConnect) { - callback(null); - return; - } - - if (this.xhr !== null) { - this.xhr.abort(); - } - - this.xhr = new XMLHttpRequest(); - this.xhr.addEventListener('loadend', () => { - const resp = this.xhr.responseText; - callback(resp ? JSON.parse(resp) : null); - this.xhr = null; - }); - - this.xhr.open('POST', 'http://127.0.0.1:8888'); - this.xhr.withCredentials = true; - this.xhr.setRequestHeader('Content-Type', 'text/json'); - this.xhr.send(JSON.stringify({action: action, params: params})); - } } window.yomiClient = new Client(); |