diff options
Diffstat (limited to 'ext/fg/js')
| -rw-r--r-- | ext/fg/js/api.js | 4 | ||||
| -rw-r--r-- | ext/fg/js/client.js | 1 | ||||
| -rw-r--r-- | ext/fg/js/frame.js | 33 | 
3 files changed, 17 insertions, 21 deletions
diff --git a/ext/fg/js/api.js b/ext/fg/js/api.js index 462eafd1..ecd8dd36 100644 --- a/ext/fg/js/api.js +++ b/ext/fg/js/api.js @@ -17,10 +17,6 @@   */ -// -// Background APIs -// -  function bgSendMessage(action, params, callback) {      chrome.runtime.sendMessage({action, params}, callback);  } diff --git a/ext/fg/js/client.js b/ext/fg/js/client.js index bb25c4e4..932cd10f 100644 --- a/ext/fg/js/client.js +++ b/ext/fg/js/client.js @@ -104,6 +104,7 @@ class Client {              } else {                  const sequence = ++this.sequence;                  range.setLength(length); +                  bgRenderText(                      {defs: definitions, root: this.fgRoot, options: this.options, sequence: sequence},                      'term-list.html', diff --git a/ext/fg/js/frame.js b/ext/fg/js/frame.js index 66d3a054..a61bb9ee 100644 --- a/ext/fg/js/frame.js +++ b/ext/fg/js/frame.js @@ -42,26 +42,25 @@ function onDomContentLoaded() {  }  function onMessage(e) { -    const {action, params} = e.data, handlers = { -        setActionState: ({index, state, sequence}) => { -            for (const mode in state) { -                const matches = document.querySelectorAll(`.action-link[data-sequence="${sequence}"][data-index="${index}"][data-mode="${mode}"]`); -                if (matches.length === 0) { -                    return; -                } +    const {action, params} = e.data, method = window['api_' + action]; +    if (typeof(method) === 'function') { +        method(params); +    } +} -                const classes = matches[0].classList; -                if (state[mode]) { -                    classes.remove('disabled'); -                } else { -                    classes.add('disabled'); -                } -            } +function api_setActionState({index, state, sequence}) { +    for (const mode in state) { +        const matches = document.querySelectorAll(`.action-link[data-sequence="${sequence}"][data-index="${index}"][data-mode="${mode}"]`); +        if (matches.length === 0) { +            return;          } -    }; -    if (handlers.hasOwnProperty(action)) { -        handlers[action](params); +        const classes = matches[0].classList; +        if (state[mode]) { +            classes.remove('disabled'); +        } else { +            classes.add('disabled'); +        }      }  }  |